Skip to content

Conversation

@klapkov
Copy link
Contributor

@klapkov klapkov commented May 2, 2023

This PR is related to this issue: cloudfoundry/diego-release#678. As discussed, here we introduce a new endpoint in the bbs - routing_info - which the route emitter can use when syncing to retrieve a desiredLRP that includes only the information the route emitter needs.

In cases where there are a huge amount of security groups in a single space and multiple apps deployed in that space we notice that the network traffic consistently increases as more apps are added to a space. After investigation we found that it was due to the large amount of security groups being sent to the route emitters.

With this approach, we see a great drop in network load when we do have such large spaces and a lot of security groups. We do not introduce a new structure of the desiredLRP as agreed previously, but just return a desiredLRP with only these fields set:

  • process_guid
  • domain
  • log_guid
  • instances
  • routes
  • modification_tag_epoch
  • modification_tag_index
  • metric_tags

The run_info is still retrieved and decrypted since we need the metric_tags that are in it, but only the tags are returned.

One thing to mention is that this route will be used by the route emitter only when we sync - every 60s, which still brings great improvements, but in all other cases, we still receive the desiredLRP trough the event emitted by BBS.

@klapkov
Copy link
Contributor Author

klapkov commented May 2, 2023

Related PR in the route emitter: cloudfoundry/route-emitter#23

@klapkov
Copy link
Contributor Author

klapkov commented May 9, 2023

@PlamenDoychev Removed the domain from the desiredLRP filter. You are right, we only filter by process_guid. Thanks

@geofffranks
Copy link
Contributor

@klapkov @PlamenDoychev is there any more work to be done on this PR?

@klapkov
Copy link
Contributor Author

klapkov commented May 23, 2023

@geofffranks Nope, this is all for this PR.

@geofffranks
Copy link
Contributor

Cool! If you're ready to switch your review status to approved @PlamenDoychev I'll merge this in tomorrow.

@mariash mariash merged commit 9b88049 into cloudfoundry:main May 23, 2023
@mariash
Copy link
Member

mariash commented May 23, 2023

Given that all the questions were resolved we merged this with @reneighbor because route-emitter needed this and it was blocking our CI.

@PlamenDoychev
Copy link

Thanks @mariash @geofffranks !

Sorry we had bank holiday yesterday and did not manage to react.

PlamenDoychev added a commit to PlamenDoychev/community that referenced this pull request Mar 9, 2024
[DIEGO-RELEASE] Add locket client keepalive time and timeout to jobs: cloudfoundry/diego-release#722
[DIEGO-RELEASE] Make max_containers prop configurable: cloudfoundry/diego-release#876
[BBS] Add request metrics for BBS - still open: cloudfoundry/bbs#80
[BBS] Use scheduling info instead of the whole desiredLRP: cloudfoundry/bbs#79
[BBS] Add routing info endpoint: 
cloudfoundry/bbs#66
[BBS] Remove cpu_weight limit: 
cloudfoundry/bbs#81
[EXECUTOR] Improve error handling on process start - still open: cloudfoundry/executor#91
[LOCKET]  Add a keepalive timeout on the locket client: cloudfoundry/locket#12
[GROOTFS] UsedVolumesSize and UsedStoreInBytes metrics: cloudfoundry/grootfs#155
[ROUTE-EMITTER] Use routing info bbs endpoint when syncing: cloudfoundry/route-emitter#23
[ROUTE-EMITTER]  Use routing_info for desired_lrp's when there are missing actual_lrp's: 
cloudfoundry/route-emitter#26
[SILK-RELEASE] Deduplicate Iptables Rules with Dynamic ASG's: cloudfoundry/silk-release#101
[SILK-RELEASE] Make container_metadata_file_check_timeout on silk-shutdown configurable: 
cloudfoundry/silk-release#111
ameowlia pushed a commit to cloudfoundry/community that referenced this pull request Mar 12, 2024
[DIEGO-RELEASE] Add locket client keepalive time and timeout to jobs: cloudfoundry/diego-release#722
[DIEGO-RELEASE] Make max_containers prop configurable: cloudfoundry/diego-release#876
[BBS] Add request metrics for BBS - still open: cloudfoundry/bbs#80
[BBS] Use scheduling info instead of the whole desiredLRP: cloudfoundry/bbs#79
[BBS] Add routing info endpoint:
cloudfoundry/bbs#66
[BBS] Remove cpu_weight limit:
cloudfoundry/bbs#81
[EXECUTOR] Improve error handling on process start - still open: cloudfoundry/executor#91
[LOCKET]  Add a keepalive timeout on the locket client: cloudfoundry/locket#12
[GROOTFS] UsedVolumesSize and UsedStoreInBytes metrics: cloudfoundry/grootfs#155
[ROUTE-EMITTER] Use routing info bbs endpoint when syncing: cloudfoundry/route-emitter#23
[ROUTE-EMITTER]  Use routing_info for desired_lrp's when there are missing actual_lrp's:
cloudfoundry/route-emitter#26
[SILK-RELEASE] Deduplicate Iptables Rules with Dynamic ASG's: cloudfoundry/silk-release#101
[SILK-RELEASE] Make container_metadata_file_check_timeout on silk-shutdown configurable:
cloudfoundry/silk-release#111

wip
ameowlia pushed a commit to cloudfoundry/community that referenced this pull request Mar 12, 2024
[DIEGO-RELEASE] Add locket client keepalive time and timeout to jobs: cloudfoundry/diego-release#722
[DIEGO-RELEASE] Make max_containers prop configurable: cloudfoundry/diego-release#876
[BBS] Add request metrics for BBS - still open: cloudfoundry/bbs#80
[BBS] Use scheduling info instead of the whole desiredLRP: cloudfoundry/bbs#79
[BBS] Add routing info endpoint:
cloudfoundry/bbs#66
[BBS] Remove cpu_weight limit:
cloudfoundry/bbs#81
[EXECUTOR] Improve error handling on process start - still open: cloudfoundry/executor#91
[LOCKET]  Add a keepalive timeout on the locket client: cloudfoundry/locket#12
[GROOTFS] UsedVolumesSize and UsedStoreInBytes metrics: cloudfoundry/grootfs#155
[ROUTE-EMITTER] Use routing info bbs endpoint when syncing: cloudfoundry/route-emitter#23
[ROUTE-EMITTER]  Use routing_info for desired_lrp's when there are missing actual_lrp's:
cloudfoundry/route-emitter#26
[SILK-RELEASE] Deduplicate Iptables Rules with Dynamic ASG's: cloudfoundry/silk-release#101
[SILK-RELEASE] Make container_metadata_file_check_timeout on silk-shutdown configurable:
cloudfoundry/silk-release#111

wip
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.

4 participants