Documentation
¶
Overview ¶
Package metrics defines all Prometheus metrics for github-sts.
Metric naming follows Go-idiomatic conventions (clean break from Python names). All metrics use the "githubsts_" prefix.
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( RequestCount = prometheus.NewCounterVec(prometheus.CounterOpts{ Name: "githubsts_http_requests_total", Help: "Total HTTP requests.", }, []string{"method", "path", "status"}) RequestLatency = prometheus.NewHistogramVec(prometheus.HistogramOpts{ Name: "githubsts_http_request_duration_seconds", Help: "HTTP request latency in seconds.", Buckets: []float64{0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0, 2.5}, }, []string{"method", "path"}) InFlight = prometheus.NewGauge(prometheus.GaugeOpts{ Name: "githubsts_http_requests_in_flight", Help: "Number of requests currently being processed.", }) )
HTTP metrics.
View Source
var ( TokenExchangesTotal = prometheus.NewCounterVec(prometheus.CounterOpts{ Name: "githubsts_token_exchanges_total", Help: "Total token exchange attempts.", }, []string{"app", "scope", "identity", "issuer", "result"}) TokenExchangeLatency = prometheus.NewHistogramVec(prometheus.HistogramOpts{ Name: "githubsts_token_exchange_duration_seconds", Help: "Token exchange duration in seconds.", Buckets: []float64{0.1, 0.25, 0.5, 1.0, 2.5, 5.0}, }, []string{"app", "scope", "identity", "issuer"}) OIDCValidationErrors = prometheus.NewCounterVec(prometheus.CounterOpts{ Name: "githubsts_oidc_validation_errors_total", Help: "OIDC token validation failures.", }, []string{"issuer", "reason"}) )
Token exchange metrics.
View Source
var ( JTIReplayAttempts = prometheus.NewCounter(prometheus.CounterOpts{ Name: "githubsts_jti_replay_attempts_total", Help: "Total JTI replay attack attempts detected.", }) JTICacheErrors = prometheus.NewCounterVec(prometheus.CounterOpts{ Name: "githubsts_jti_cache_errors_total", Help: "JTI cache operation errors.", }, []string{"error_type"}) )
JTI replay prevention metrics.
View Source
var ( AuditEventsLogged = prometheus.NewCounterVec(prometheus.CounterOpts{ Name: "githubsts_audit_events_logged_total", Help: "Total audit events logged.", }, []string{"result"}) AuditLogErrors = prometheus.NewCounterVec(prometheus.CounterOpts{ Name: "githubsts_audit_log_errors_total", Help: "Audit log write errors.", }, []string{"backend"}) AuditEventsDropped = prometheus.NewCounter(prometheus.CounterOpts{ Name: "githubsts_audit_events_dropped_total", Help: "Total audit events dropped due to full channel buffer.", }) )
Audit logging metrics.
View Source
var ( PolicyLoadsTotal = prometheus.NewCounterVec(prometheus.CounterOpts{ Name: "githubsts_policy_loads_total", Help: "Total policy file load attempts.", }, []string{"app", "backend", "result"}) PolicyCacheHits = prometheus.NewCounterVec(prometheus.CounterOpts{ Name: "githubsts_policy_cache_hits_total", Help: "Policy cache hits.", }, []string{"app"}) PolicyCacheMisses = prometheus.NewCounterVec(prometheus.CounterOpts{ Name: "githubsts_policy_cache_misses_total", Help: "Policy cache misses.", }, []string{"app"}) )
Policy metrics.
View Source
var ( GitHubAPICalls = prometheus.NewCounterVec(prometheus.CounterOpts{ Name: "githubsts_github_api_calls_total", Help: "Total GitHub API calls.", }, []string{"app", "endpoint", "result"}) GitHubTokenIssued = prometheus.NewCounterVec(prometheus.CounterOpts{ Name: "githubsts_github_tokens_issued_total", Help: "GitHub installation tokens issued.", }, []string{"app", "scope", "permissions"}) )
GitHub App metrics.
View Source
var ( GitHubRateLimitLimit = prometheus.NewGaugeVec(prometheus.GaugeOpts{ Name: "githubsts_github_rate_limit_limit", Help: "Maximum number of requests allowed in the current rate limit window.", }, []string{"app", "resource"}) GitHubRateLimitRemaining = prometheus.NewGaugeVec(prometheus.GaugeOpts{ Name: "githubsts_github_rate_limit_remaining", Help: "Remaining requests before rate limit is reached.", }, []string{"app", "resource"}) GitHubRateLimitUsed = prometheus.NewGaugeVec(prometheus.GaugeOpts{ Name: "githubsts_github_rate_limit_used", Help: "Requests used in the current rate limit window.", }, []string{"app", "resource"}) GitHubRateLimitResetTimestamp = prometheus.NewGaugeVec(prometheus.GaugeOpts{ Name: "githubsts_github_rate_limit_reset_timestamp", Help: "Unix epoch timestamp when the rate limit window resets.", }, []string{"app", "resource"}) GitHubRateLimitRemainingPercent = prometheus.NewGaugeVec(prometheus.GaugeOpts{ Name: "githubsts_github_rate_limit_remaining_percent", Help: "Percentage of rate limit remaining.", }, []string{"app", "resource"}) GitHubRateLimitExceededTotal = prometheus.NewCounterVec(prometheus.CounterOpts{ Name: "githubsts_github_rate_limit_exceeded_total", Help: "Total primary rate limit exceeded events.", }, []string{"app", "resource", "caller"}) GitHubSecondaryRateLimitTotal = prometheus.NewCounterVec(prometheus.CounterOpts{ Name: "githubsts_github_secondary_rate_limit_total", Help: "Total secondary (abuse) rate limit events from GitHub.", }, []string{"app", "caller"}) GitHubSecondaryRateLimitRetryAfter = prometheus.NewGaugeVec(prometheus.GaugeOpts{ Name: "githubsts_github_secondary_rate_limit_retry_after_seconds", Help: "Current retry-after value in seconds when secondary rate limit is active.", }, []string{"app"}) )
GitHub API rate limit metrics.
View Source
var ( GitHubReachable = prometheus.NewGaugeVec(prometheus.GaugeOpts{ Name: "githubsts_github_reachable", Help: "Whether GitHub API is reachable (1 = reachable, 0 = unreachable).", }, []string{"app"}) GitHubReachabilityCheckDuration = prometheus.NewHistogramVec(prometheus.HistogramOpts{ Name: "githubsts_github_reachability_check_duration_seconds", Help: "Latency of reachability probe to GitHub API.", Buckets: []float64{0.05, 0.1, 0.25, 0.5, 1.0, 2.5, 5.0, 10.0}, }, []string{"app"}) GitHubReachabilityFailuresTotal = prometheus.NewCounterVec(prometheus.CounterOpts{ Name: "githubsts_github_reachability_failures_total", Help: "Total GitHub reachability probe failures.", }, []string{"app", "reason"}) )
GitHub reachability metrics.
View Source
var RateLimitRejections = prometheus.NewCounter(prometheus.CounterOpts{
Name: "githubsts_rate_limit_rejections_total",
Help: "Total requests rejected by per-IP rate limiting.",
})
Request rate limiting.
View Source
var Ready = prometheus.NewGauge(prometheus.GaugeOpts{
Name: "githubsts_ready",
Help: "Whether the instance is ready to serve traffic (1 = ready, 0 = not ready).",
})
Instance readiness.
Functions ¶
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.