-
Notifications
You must be signed in to change notification settings - Fork 4.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Work in progress] Metricbeat - fix Azure duplicates #36778
base: main
Are you sure you want to change the base?
Conversation
This pull request does not have a backport label.
To fixup this pull request, you need to add the backport labels for the needed
|
Thanks @tdancheva for working on this!! The diagrams are super helpful. Two things here:
|
Thanks so much for the feedback @kaiyan-sheng !
With the change, it will only make API call to get the values once per hour for timegrain 1h, so we are not calling the API 12 times. I should change that diagram, and remove the time span except when the values are collected because that is the only time it will actually make the call. What happens in that case is, I remove the metric metadata from the client, and move to the next metric, skipping the API call. This holds for any timegrain, when it is larger than the period, I couldn't test all because not all are present in our metric sets, but you can also have a look at the logic would be great, to make sure I am not missing anything. In any case, we are looking with @zmoog into the possibility of separating as well.
Agreed!! We had that discussion with @zmoog as well. Definitely, given the info from Azure around latency, we are overdoing it, especially if say the period is set to 1h. And we are not even documenting it or communicating to the user that that is what happens in the background. |
@tdancheva, this solution is working fine However, there are metricset configurations that do not always specify the time grain. Here's an example from the database account manifest.yml file: - resource_group: ""
resource_type: "Microsoft.DocumentDb/databaseAccounts"
metrics:
- name:
- "AddRegion"
- "RemoveRegion"
- "UpdateAccountReplicationSettings"
- "UpdateAccountNetworkSettings"
- "UpdateAccountKeys"
- "ServiceAvailability"
- "ReplicationLatency"
- "RegionFailover"
- "DeleteAccount"
- "CreateAccount"
- "UpdateDiagnosticsSettings"
namespace: "Microsoft.DocumentDb/databaseAccounts" This metricset only specifies the metric The API works with and without time grains. If we don't specify the time grain, Azure returns the data with some default time grain. If we don't have the time grain from the config, we can't juggle the time intervals before making the request to the API. So I tried a slightly different approach:
Here's the implementation. This approach seems working fine:
|
This pull request is now in conflicts. Could you fix it? 🙏
|
1 similar comment
This pull request is now in conflicts. Could you fix it? 🙏
|
This pull request does not have a backport label.
To fixup this pull request, you need to add the backport labels for the needed
|
|
This pull request is now in conflicts. Could you fix it? 🙏
|
Proposed commit message
Checklist
CHANGELOG.next.asciidoc
orCHANGELOG-developer.next.asciidoc
.Author's Checklist
How to test this PR locally
Related issues
Use cases
Screenshots
Logs