mirror of
https://github.com/prometheus/prometheus.git
synced 2026-02-03 20:39:32 -05:00
* Add OpenAPI 3.2 specification generation for Prometheus HTTP API This commit introduces an OpenAPI specification for the Prometheus API. After testing multiple code-generation servers with built-in APIs, this implementation uses an independent spec file outside of the critical path. This spec file is tested with a framework present in this pull request. The specification helps clients know which parameters they can use and is served at /api/v1/openapi.yaml. The spec file will evolve with the Prometheus API and has the same version number. Downstream projects can tune the APIs presented in the spec file with configuration options using the IncludePaths setting for path filtering. In the future, there is room to generate a server from this spec file (e.g. with interfaces), but this is out of scope for this pull request. Architecture: - Core OpenAPI infrastructure (openapi.go): Dynamic spec building, caching, and thread-safe spec generation - Schema definitions (openapi_schemas.go): Complete type definitions for all API request and response types - Path specifications (openapi_paths.go): Endpoint definitions with parameters, request bodies, and response schemas - Examples (openapi_examples.go): Realistic request/response examples - Helper functions (openapi_helpers.go): Reusable builders for common OpenAPI structures Testing: - Comprehensive test suite with golden file validation - Test helpers package for API testing infrastructure - OpenAPI compliance validation utilities The golden file captures the complete specification for snapshot testing. Update with: go test -run TestOpenAPIGolden -update-openapi-spec REVIEWERS: The most important thing to check would be the OpenAPI golden file (web/api/v1/testdata/openapi_golden.yaml). Test scenarios are important as they test the actual OpenAPI spec validity. Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com> * Add OpenAPI 3.1 support with version selection Add support for both OpenAPI 3.1 and 3.2 specifications with version selection via openapi_version query parameter. Defaults to 3.1 for broader compatibility Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com> * Enhance OpenAPI examples and add helper functions - Add timestampExamples helper for consistent time formatting - Add exampleMap helper to simplify example creation - Improve example summaries with query details - Add matrix result example for range vector queries Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com> * web/api: Add AtST method to test helper iterators Implement the AtST() method required by chunkenc.Iterator interface for FakeSeriesIterator and FakeHistogramSeriesIterator test helpers. The method returns 0 as these test helpers don't use start timestamps Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com> * OpenAPI: Add minimum coverage test Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com> * OpenAPI: Improve examples handling Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com> --------- Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com>
130 lines
6.6 KiB
Modula-2
130 lines
6.6 KiB
Modula-2
module github.com/prometheus/prometheus/documentation/examples/remote_storage
|
|
|
|
go 1.25.0
|
|
|
|
require (
|
|
github.com/alecthomas/kingpin/v2 v2.4.0
|
|
github.com/gogo/protobuf v1.3.2
|
|
github.com/golang/snappy v1.0.0
|
|
github.com/influxdata/influxdb-client-go/v2 v2.14.0
|
|
github.com/prometheus/client_golang v1.23.2
|
|
github.com/prometheus/common v0.67.4
|
|
github.com/prometheus/prometheus v0.308.1
|
|
github.com/stretchr/testify v1.11.1
|
|
)
|
|
|
|
require (
|
|
cloud.google.com/go/auth v0.17.0 // indirect
|
|
cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect
|
|
cloud.google.com/go/compute/metadata v0.9.0 // indirect
|
|
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.19.1 // indirect
|
|
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.12.0 // indirect
|
|
github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.2 // indirect
|
|
github.com/AzureAD/microsoft-authentication-library-for-go v1.5.0 // indirect
|
|
github.com/alecthomas/units v0.0.0-20240927000941-0f3dac36c52b // indirect
|
|
github.com/apapsch/go-jsonmerge/v2 v2.0.0 // indirect
|
|
github.com/aws/aws-sdk-go-v2 v1.41.0 // indirect
|
|
github.com/aws/aws-sdk-go-v2/config v1.32.6 // indirect
|
|
github.com/aws/aws-sdk-go-v2/credentials v1.19.6 // indirect
|
|
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.16 // indirect
|
|
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.16 // indirect
|
|
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.16 // indirect
|
|
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.4 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.16 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/signin v1.0.4 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/sso v1.30.8 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.12 // indirect
|
|
github.com/aws/aws-sdk-go-v2/service/sts v1.41.5 // indirect
|
|
github.com/aws/smithy-go v1.24.0 // indirect
|
|
github.com/beorn7/perks v1.0.1 // indirect
|
|
github.com/cespare/xxhash/v2 v2.3.0 // indirect
|
|
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
|
|
github.com/dennwc/varint v1.0.0 // indirect
|
|
github.com/felixge/httpsnoop v1.0.4 // indirect
|
|
github.com/go-logr/logr v1.4.3 // indirect
|
|
github.com/go-logr/stdr v1.2.2 // indirect
|
|
github.com/go-viper/mapstructure/v2 v2.4.0 // indirect
|
|
github.com/gobwas/glob v0.2.3 // indirect
|
|
github.com/golang-jwt/jwt/v5 v5.3.0 // indirect
|
|
github.com/google/s2a-go v0.1.9 // indirect
|
|
github.com/google/uuid v1.6.0 // indirect
|
|
github.com/googleapis/enterprise-certificate-proxy v0.3.6 // indirect
|
|
github.com/googleapis/gax-go/v2 v2.15.0 // indirect
|
|
github.com/grafana/regexp v0.0.0-20250905093917-f7b3be9d1853 // indirect
|
|
github.com/hashicorp/go-version v1.7.0 // indirect
|
|
github.com/influxdata/line-protocol v0.0.0-20200327222509-2487e7298839 // indirect
|
|
github.com/jpillora/backoff v1.0.0 // indirect
|
|
github.com/json-iterator/go v1.1.12 // indirect
|
|
github.com/klauspost/compress v1.18.2 // indirect
|
|
github.com/knadh/koanf/maps v0.1.2 // indirect
|
|
github.com/knadh/koanf/providers/confmap v1.0.0 // indirect
|
|
github.com/knadh/koanf/v2 v2.3.0 // indirect
|
|
github.com/kylelemons/godebug v1.1.0 // indirect
|
|
github.com/mitchellh/copystructure v1.2.0 // indirect
|
|
github.com/mitchellh/reflectwalk v1.0.2 // indirect
|
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
|
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect
|
|
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
|
|
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect
|
|
github.com/oapi-codegen/runtime v1.0.0 // indirect
|
|
github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics v0.139.0 // indirect
|
|
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.139.0 // indirect
|
|
github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatocumulativeprocessor v0.139.0 // indirect
|
|
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect
|
|
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
|
|
github.com/prometheus/client_golang/exp v0.0.0-20251212205219-7ba246a648ca // indirect
|
|
github.com/prometheus/client_model v0.6.2 // indirect
|
|
github.com/prometheus/otlptranslator v1.0.0 // indirect
|
|
github.com/prometheus/procfs v0.16.1 // indirect
|
|
github.com/prometheus/sigv4 v0.3.0 // indirect
|
|
github.com/puzpuzpuz/xsync/v3 v3.5.1 // indirect
|
|
github.com/xhit/go-str2duration/v2 v2.1.0 // indirect
|
|
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
|
|
go.opentelemetry.io/collector/component v1.45.0 // indirect
|
|
go.opentelemetry.io/collector/confmap v1.45.0 // indirect
|
|
go.opentelemetry.io/collector/confmap/xconfmap v0.139.0 // indirect
|
|
go.opentelemetry.io/collector/consumer v1.45.0 // indirect
|
|
go.opentelemetry.io/collector/featuregate v1.45.0 // indirect
|
|
go.opentelemetry.io/collector/pdata v1.45.0 // indirect
|
|
go.opentelemetry.io/collector/pipeline v1.45.0 // indirect
|
|
go.opentelemetry.io/collector/processor v1.45.0 // indirect
|
|
go.opentelemetry.io/collector/semconv v0.128.0 // indirect
|
|
go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.63.0 // indirect
|
|
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0 // indirect
|
|
go.opentelemetry.io/otel v1.38.0 // indirect
|
|
go.opentelemetry.io/otel/metric v1.38.0 // indirect
|
|
go.opentelemetry.io/otel/trace v1.38.0 // indirect
|
|
go.uber.org/atomic v1.11.0 // indirect
|
|
go.uber.org/multierr v1.11.0 // indirect
|
|
go.uber.org/zap v1.27.0 // indirect
|
|
go.yaml.in/yaml/v2 v2.4.3 // indirect
|
|
go.yaml.in/yaml/v3 v3.0.4 // indirect
|
|
golang.org/x/crypto v0.43.0 // indirect
|
|
golang.org/x/net v0.46.0 // indirect
|
|
golang.org/x/oauth2 v0.32.0 // indirect
|
|
golang.org/x/sys v0.37.0 // indirect
|
|
golang.org/x/text v0.30.0 // indirect
|
|
golang.org/x/time v0.13.0 // indirect
|
|
google.golang.org/api v0.252.0 // indirect
|
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20251002232023-7c0ddcbb5797 // indirect
|
|
google.golang.org/grpc v1.76.0 // indirect
|
|
google.golang.org/protobuf v1.36.10 // indirect
|
|
gopkg.in/yaml.v3 v3.0.1 // indirect
|
|
k8s.io/apimachinery v0.34.1 // indirect
|
|
k8s.io/client-go v0.34.1 // indirect
|
|
k8s.io/klog/v2 v2.130.1 // indirect
|
|
k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 // indirect
|
|
)
|
|
|
|
exclude (
|
|
// These excludes are needed because of some weird version collision.
|
|
// Feel free to try removing them after future dependency updates.
|
|
cloud.google.com/go v0.26.0
|
|
cloud.google.com/go v0.34.0
|
|
cloud.google.com/go v0.65.0
|
|
cloud.google.com/go v0.82.0
|
|
|
|
// Fixing ambiguous import: found package google.golang.org/genproto/googleapis/api/annotations in multiple modules.
|
|
google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1
|
|
)
|