[feat][broker] PIP-264: Add schema registry metrics #22624
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PIP-264
Motivation
Exposes the current Schema Registry metrics described in the doc using OpenTelemetry.
Modifications
Modified
SchemaRegistryStats
to expose metricspulsar.broker.request.schema_registry.duration
andpulsar.broker.operation.schema_registry.compatibility_check.count
. A full description of these metrics can be found in the documentation PR: apache/pulsar-site#892. Unlike the former approach, this records request latencies irrespective of the response type (success/failure), thus simplifying the design.Modified
SchemaRegistryStats
to not be a singleton. This fits better with the OpenTelemetry design and allows for easier testing, as resources are not shared across tests. It broke parameterized test classSimpleSchemaTest
, which had to be fixed by reordering the test based on the test instance object first. This way, no two instances of the same metric co-exist, as expected by the OpenTelemetry SDK.Verifying this change
This change added tests and can be verified as follows:
SchemaServiceTest#testSchemaRegistryMetrics
andSchemaServiceTest#checkIsCompatible
to validate the new metricsDoes this pull request potentially affect one of the following parts:
Documentation
doc
doc-required
[feat][broker] PIP-264: Add schema registry metrics pulsar-site#892doc-not-needed
doc-complete
Matching PR in forked repository
PR in forked repository: dragosvictor#19