Skip to content

Per endpoint load report#4044

Merged
htuch merged 5 commits intoenvoyproxy:masterfrom
vishalpowar:per_endpoint_load_report
Aug 8, 2018
Merged

Per endpoint load report#4044
htuch merged 5 commits intoenvoyproxy:masterfrom
vishalpowar:per_endpoint_load_report

Conversation

@vishalpowar
Copy link
Copy Markdown
Contributor

For an explanation of how to fill out the fields, please see the relevant section
in PULL_REQUESTS.md

Description:
Risk Level: None
Testing: None
Docs Changes:
Release Notes:
Fixes: #4036

Pull latest changes from the master
@vishalpowar vishalpowar force-pushed the per_endpoint_load_report branch from 63a8528 to 9665d9e Compare August 3, 2018 18:06
load_report.proto

Signed-off-by: Vishal Powar <vishalpowar@rodete-desktop-imager.corp.google.com>
@vishalpowar vishalpowar force-pushed the per_endpoint_load_report branch from 9665d9e to 8c74fb2 Compare August 3, 2018 18:43
@htuch htuch self-assigned this Aug 5, 2018
Copy link
Copy Markdown
Member

@htuch htuch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, a few questions.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you comment on examples of this will be used; e.g. what would Envoy put in this? What is the key space for the metadata?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ideally this would contain the same information that we populate in LbEndpoint.metadata.

Thinking of this as a custom response to the Load Balancer for the Endpoint. e.g. if Load Balancer is using some sort of 'affinity', it would pass down it down to envoy via LbEndpoint.metadata. And should be copied back in the report to the balancer, for some correlation from Assignment to Load Report at the balancer.

That said, I agree that this is not an exact definition of how this field will be populated.
I will remove it.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that Endpoint has a lot of information beyond just the endpoint identifier these days, even though it started of as a simple identifier. I think core.Address is the only actual identifier in there. Should we use that instead?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, core.Address is enough. Will change

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where did we end up with on the "let's eventually deprecate cluster granularity stats and have the management server aggregate the endpoint stats"?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just caught up on this, ignore this comment.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought we did not want to disable a scenario where Server (Balancer) might not need per endpoint granurality information. In which case we can avoid sending all the Endpoint information to the Server.

To make this work I have added the following in LoadStatsResponse below

bool report_endpoint_granularity = 3;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FWIW I think it makes sense to make this be configurable. If users don't want all the extra data there seems no reason to spend resources serializing it.

@vishalpowar vishalpowar force-pushed the per_endpoint_load_report branch from 67461c6 to b95a0ef Compare August 7, 2018 18:12
Copy link
Copy Markdown
Member

@htuch htuch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM modulo tiny nit. Is everyone else good with this? @mattklein123 ?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit *true* to match Envoy docs style.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Copy link
Copy Markdown
Member

@mattklein123 mattklein123 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yup LGTM

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/if Server/if the server

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

load_report.proto

Signed-off-by: Vishal Powar <vishalpowar@rodete-desktop-imager.corp.google.com>
@vishalpowar vishalpowar force-pushed the per_endpoint_load_report branch from b95a0ef to 1756646 Compare August 8, 2018 19:16
Copy link
Copy Markdown
Member

@htuch htuch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks.

@htuch htuch merged commit d47365a into envoyproxy:master Aug 8, 2018
@vishalpowar vishalpowar deleted the per_endpoint_load_report branch January 11, 2019 08:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants