-
Notifications
You must be signed in to change notification settings - Fork 639
chore: Update prometheus to version v3 #4094
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
base: main
Are you sure you want to change the base?
chore: Update prometheus to version v3 #4094
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 👍
We need to update prometheus testutils that has changed and some tests that now with a more relaxed label validation might expect or fail with different results.
Note this will relax the label validation and allow the newer metric selectors format to allow utf8 symbols.
Instead fully equality of the matcher object, which breaks with the latest prometheus version.
ccc29b4
to
358ed4e
Compare
This change is a consequence by the grpc-go change in v1.70.0, which got merged here: grpc/grpc-go#7905 As we do call `WithDisableRetry()`, it should be a no-op.
bed5aa8
to
0af7e31
Compare
// The default gRPC service config is explicitly set to balance between | ||
// instances. | ||
const grpcServiceConfig = `{ | ||
"methodConfig": [{ | ||
"name": [{"service": ""}], | ||
"retryPolicy": {} | ||
}], | ||
"healthCheckConfig": { | ||
"serviceName": "pyroscope.segment-writer" | ||
} | ||
"methodConfig": [ | ||
{ | ||
"name": [ | ||
{ | ||
"service": "" | ||
} | ||
], | ||
"retryPolicy": { | ||
"maxAttempts": 4, | ||
"initialBackoff": "0.1s", | ||
"maxBackoff": "1s", | ||
"backoffMultiplier": 2, | ||
"retryableStatusCodes": [ | ||
"UNAVAILABLE" | ||
] | ||
} | ||
} | ||
], | ||
"healthCheckConfig": { | ||
"serviceName": "pyroscope.segment-writer" | ||
} | ||
}` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@kolesnikovae please take a look at this, I think after grpc/grpc-go#7905 we cannot do this anymore using the service config.
Note this is change of behaviour as it will relax the label validation and allow the newer metric selectors format, which in turn needs to be used to use the full character set.
There is also some bigger impact to the remote write/metrics export, as there is a new version of remote write in prometheus v3: https://prometheus.io/docs/specs/prw/remote_write_spec_2_0/
This will be the new label selector format:
In order to override other validation at a later point, we also need to set:
I am not planning to do this as part of this PR.