## Motivation and Context - It is important to have basic observability in place so that availability issues can be figured out easily ## How Has This Been Tested? - Registration of metrics is tested - Prometheus endpoint `/metrics` is included in test cases to test the metrics exposed - Test locally to understand any regression. ## Breaking Changes - No ## Types of changes <!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: --> - [ ] Bug fix (non-breaking change which fixes an issue) - [x] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Documentation update ## Checklist <!-- Go over all the following points, and put an `x` in all the boxes that apply. --> - [x] I have read the [MCP Documentation](https://modelcontextprotocol.io) - [x] My code follows the repository's style guidelines - [x] New and existing tests pass locally - [x] I have added appropriate error handling - [ ] I have added or updated documentation as needed ## Additional context - Telemetry implementation is currently done by keeping metrics in mind as of now, other types of telemetry can be added on top of it later. - Instrumentation takes care of these problems already: - Cardinality control by limiting latency buckets and not including labels that grows with throughput. - Latency buckets are added as per SLA guidelines - Each metric prefixed with `mcp` to easily identify. - Pulling mechanism is used since the idea is to scrape metrics via an agent like vmagent, prometheus agent or otel-collector. - Metrics follow standard approach of defining counters, histogram and gauges as per opentelemetry guidelines.
51 lines
2 KiB
Modula-2
51 lines
2 KiB
Modula-2
module github.com/modelcontextprotocol/registry
|
|
|
|
go 1.24.0
|
|
|
|
require (
|
|
github.com/caarlos0/env/v11 v11.3.1
|
|
github.com/danielgtaylor/huma/v2 v2.34.1
|
|
github.com/golang-jwt/jwt/v5 v5.3.0
|
|
github.com/google/uuid v1.6.0
|
|
github.com/prometheus/client_golang v1.23.0
|
|
github.com/santhosh-tekuri/jsonschema/v5 v5.3.1
|
|
github.com/stretchr/testify v1.10.0
|
|
go.mongodb.org/mongo-driver v1.17.3
|
|
go.opentelemetry.io/contrib/instrumentation/runtime v0.62.0
|
|
go.opentelemetry.io/otel v1.37.0
|
|
go.opentelemetry.io/otel/exporters/prometheus v0.59.1
|
|
go.opentelemetry.io/otel/metric v1.37.0
|
|
go.opentelemetry.io/otel/sdk v1.37.0
|
|
go.opentelemetry.io/otel/sdk/metric v1.37.0
|
|
)
|
|
|
|
require (
|
|
github.com/beorn7/perks v1.0.1 // indirect
|
|
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
|
github.com/davecgh/go-spew v1.1.1 // indirect
|
|
github.com/go-logr/logr v1.4.3 // indirect
|
|
github.com/go-logr/stdr v1.2.2 // indirect
|
|
github.com/golang/snappy v0.0.4 // indirect
|
|
github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc // indirect
|
|
github.com/klauspost/compress v1.18.0 // indirect
|
|
github.com/montanaflynn/stats v0.7.1 // indirect
|
|
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
|
|
github.com/pmezard/go-difflib v1.0.0 // indirect
|
|
github.com/prometheus/client_model v0.6.2 // indirect
|
|
github.com/prometheus/common v0.65.0 // indirect
|
|
github.com/prometheus/otlptranslator v0.0.0-20250717125610-8549f4ab4f8f // indirect
|
|
github.com/prometheus/procfs v0.17.0 // indirect
|
|
github.com/stretchr/objx v0.5.2 // indirect
|
|
github.com/xdg-go/pbkdf2 v1.0.0 // indirect
|
|
github.com/xdg-go/scram v1.1.2 // indirect
|
|
github.com/xdg-go/stringprep v1.0.4 // indirect
|
|
github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78 // indirect
|
|
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
|
|
go.opentelemetry.io/otel/trace v1.37.0 // indirect
|
|
golang.org/x/crypto v0.41.0 // indirect
|
|
golang.org/x/sync v0.16.0 // indirect
|
|
golang.org/x/sys v0.35.0 // indirect
|
|
golang.org/x/text v0.28.0 // indirect
|
|
google.golang.org/protobuf v1.36.6 // indirect
|
|
gopkg.in/yaml.v3 v3.0.1 // indirect
|
|
)
|