mirror of
https://github.com/coder/coder.git
synced 2026-06-02 20:48:20 +00:00
feat(scripts/metricsdocgen): support merging static and generated metrics files (#21464)
## Description This PR refactors `scripts/metricsdocgen/main.go` to support merging static and generated metrics files for documentation generation. The static `metrics` file remains necessary for metrics not defined in the coder codebase (`go_*`, `process_*`, `promhttp_*`, `coder_aibridged_*`), as well as **edge cases** the scanner cannot handle (e.g., such as metrics with runtime-determined labels or function-local variable references for fields, ...). Handling these edge cases in the scanner would make it significantly more complex, so we keep this hybrid approach to accommodate them. This means that in such cases, developers need to update the `metrics` file directly, meaning there is still a risk of out-of-date information in the documentation. However, this solution should already encompass most cases. Static metrics take priority over generated metrics when both files contain the same metric name, allowing manual overrides without modifying the scanner. Some of these edge cases could be easily fixed by updating the codebase to use one of the supported patterns. ## Changes * Update `scripts/metricsdocgen/main.go` to read from two separate metrics files: * `metrics`: static, manually maintained metrics (e.g., `go_*`, `process_*`, `promhttp_*`, `coder_aibridged_*`) * `generated_metrics`: auto-generated by the AST scanner * Update `metrics` file to contain only static and edge-case metrics * Skip metrics with empty HELP descriptions in the scanner * Update `generated_metrics` to reflect skipped metrics * Update `docs/admin/integrations/prometheus.md` with merged metrics Related to: https://github.com/coder/coder/issues/13223 **Disclosure:** This PR was mainly developed with Claude Sonnet 4, with iterative review and refinement by @ssncferreira
This commit is contained in:
@@ -1,30 +1,3 @@
|
||||
# HELP agent_reconnecting_pty_connections_total
|
||||
# TYPE agent_reconnecting_pty_connections_total counter
|
||||
agent_reconnecting_pty_connections_total 0
|
||||
# HELP agent_reconnecting_pty_errors_total
|
||||
# TYPE agent_reconnecting_pty_errors_total counter
|
||||
agent_reconnecting_pty_errors_total{error_type=""} 0
|
||||
# HELP agent_scripts_executed_total
|
||||
# TYPE agent_scripts_executed_total counter
|
||||
agent_scripts_executed_total{success=""} 0
|
||||
# HELP agent_sessions_errors_total
|
||||
# TYPE agent_sessions_errors_total counter
|
||||
agent_sessions_errors_total{magic_type="",pty="",error_type=""} 0
|
||||
# HELP agent_sessions_total
|
||||
# TYPE agent_sessions_total counter
|
||||
agent_sessions_total{magic_type="",pty=""} 0
|
||||
# HELP agent_ssh_server_failed_connections_total
|
||||
# TYPE agent_ssh_server_failed_connections_total counter
|
||||
agent_ssh_server_failed_connections_total 0
|
||||
# HELP agent_ssh_server_sftp_connections_total
|
||||
# TYPE agent_ssh_server_sftp_connections_total counter
|
||||
agent_ssh_server_sftp_connections_total 0
|
||||
# HELP agent_ssh_server_sftp_server_errors_total
|
||||
# TYPE agent_ssh_server_sftp_server_errors_total counter
|
||||
agent_ssh_server_sftp_server_errors_total 0
|
||||
# HELP agent_x11_handler_errors_total
|
||||
# TYPE agent_x11_handler_errors_total counter
|
||||
agent_x11_handler_errors_total{error_type=""} 0
|
||||
# HELP coder_pubsub_connected Whether we are connected (1) or not connected (0) to postgres
|
||||
# TYPE coder_pubsub_connected gauge
|
||||
coder_pubsub_connected 0
|
||||
@@ -211,9 +184,6 @@ coderd_license_warnings 0
|
||||
# HELP coderd_lifecycle_autobuild_execution_duration_seconds Duration of each autobuild execution.
|
||||
# TYPE coderd_lifecycle_autobuild_execution_duration_seconds histogram
|
||||
coderd_lifecycle_autobuild_execution_duration_seconds 0
|
||||
# HELP coderd_notifications_dispatch_attempts_total
|
||||
# TYPE coderd_notifications_dispatch_attempts_total counter
|
||||
coderd_notifications_dispatch_attempts_total{method="",notification_template_id="",result=""} 0
|
||||
# HELP coderd_notifications_dispatcher_send_seconds The time taken to dispatch notifications.
|
||||
# TYPE coderd_notifications_dispatcher_send_seconds histogram
|
||||
coderd_notifications_dispatcher_send_seconds{method=""} 0
|
||||
@@ -319,6 +289,9 @@ coderd_prometheusmetrics_metrics_aggregator_execution_update_seconds 0
|
||||
# HELP coderd_prometheusmetrics_metrics_aggregator_store_size The number of metrics stored in the aggregator
|
||||
# TYPE coderd_prometheusmetrics_metrics_aggregator_store_size gauge
|
||||
coderd_prometheusmetrics_metrics_aggregator_store_size 0
|
||||
# HELP coderd_provisioner_job_queue_wait_seconds Time from job creation to acquisition by a provisioner daemon.
|
||||
# TYPE coderd_provisioner_job_queue_wait_seconds histogram
|
||||
coderd_provisioner_job_queue_wait_seconds{provisioner_type="",job_type="",transition="",build_reason=""} 0
|
||||
# HELP coderd_provisionerd_job_timings_seconds The provisioner job time duration in seconds.
|
||||
# TYPE coderd_provisionerd_job_timings_seconds histogram
|
||||
coderd_provisionerd_job_timings_seconds{provisioner="",status=""} 0
|
||||
@@ -340,6 +313,9 @@ coderd_proxyhealth_health_check_results{proxy_id=""} 0
|
||||
# HELP coderd_template_workspace_build_duration_seconds Duration from workspace build creation to agent ready, by template.
|
||||
# TYPE coderd_template_workspace_build_duration_seconds histogram
|
||||
coderd_template_workspace_build_duration_seconds{template_name="",organization_name="",transition="",status="",is_prebuild=""} 0
|
||||
# HELP coderd_workspace_builds_enqueued_total Total number of workspace build enqueue attempts.
|
||||
# TYPE coderd_workspace_builds_enqueued_total counter
|
||||
coderd_workspace_builds_enqueued_total{provisioner_type="",build_reason="",transition="",status=""} 0
|
||||
# HELP coderd_workspace_builds_total The number of workspaces started, updated, or deleted.
|
||||
# TYPE coderd_workspace_builds_total counter
|
||||
coderd_workspace_builds_total{workspace_owner="",workspace_name="",template_name="",template_version="",workspace_transition="",status=""} 0
|
||||
@@ -352,15 +328,3 @@ coderd_workspace_creation_total{organization_name="",template_name="",preset_nam
|
||||
# HELP coderd_workspace_latest_build_status The current workspace statuses by template, transition, and owner for all non-deleted workspaces.
|
||||
# TYPE coderd_workspace_latest_build_status gauge
|
||||
coderd_workspace_latest_build_status{status="",template_name="",template_version="",workspace_owner="",workspace_transition=""} 0
|
||||
# HELP connect_sessions_total Total number of CONNECT sessions established.
|
||||
# TYPE connect_sessions_total counter
|
||||
connect_sessions_total{type=""} 0
|
||||
# HELP inflight_mitm_requests Number of MITM requests currently being processed.
|
||||
# TYPE inflight_mitm_requests gauge
|
||||
inflight_mitm_requests{provider=""} 0
|
||||
# HELP mitm_requests_total Total number of MITM requests handled by the proxy.
|
||||
# TYPE mitm_requests_total counter
|
||||
mitm_requests_total{provider=""} 0
|
||||
# HELP mitm_responses_total Total number of MITM responses by HTTP status code class.
|
||||
# TYPE mitm_responses_total counter
|
||||
mitm_responses_total{code="",provider=""} 0
|
||||
|
||||
@@ -16,21 +16,23 @@ import (
|
||||
)
|
||||
|
||||
var (
|
||||
metricsFile string
|
||||
prometheusDocFile string
|
||||
dryRun bool
|
||||
staticMetricsFile string
|
||||
prometheusDocFile string
|
||||
generatedMetricsFile string
|
||||
dryRun bool
|
||||
|
||||
generatorPrefix = []byte("<!-- Code generated by 'make docs/admin/integrations/prometheus.md'. DO NOT EDIT -->")
|
||||
generatorSuffix = []byte("<!-- End generated by 'make docs/admin/integrations/prometheus.md'. -->")
|
||||
)
|
||||
|
||||
func main() {
|
||||
flag.StringVar(&metricsFile, "metrics-file", "scripts/metricsdocgen/metrics", "Path to Prometheus metrics file")
|
||||
flag.StringVar(&staticMetricsFile, "static-metrics", "scripts/metricsdocgen/metrics", "Path to static metrics file (manually maintained)")
|
||||
flag.StringVar(&generatedMetricsFile, "generated-metrics", "scripts/metricsdocgen/generated_metrics", "Path to generated metrics file (from scanner)")
|
||||
flag.StringVar(&prometheusDocFile, "prometheus-doc-file", "docs/admin/integrations/prometheus.md", "Path to Prometheus doc file")
|
||||
flag.BoolVar(&dryRun, "dry-run", false, "Dry run")
|
||||
flag.Parse()
|
||||
|
||||
metrics, err := readMetrics()
|
||||
metrics, err := readAndMergeMetrics()
|
||||
if err != nil {
|
||||
log.Fatal("can't read metrics: ", err)
|
||||
}
|
||||
@@ -56,11 +58,13 @@ func main() {
|
||||
}
|
||||
}
|
||||
|
||||
func readMetrics() ([]*dto.MetricFamily, error) {
|
||||
f, err := os.Open(metricsFile)
|
||||
// readMetricsFromFile reads metrics from a single Prometheus text format file.
|
||||
func readMetricsFromFile(path string) ([]*dto.MetricFamily, error) {
|
||||
f, err := os.Open(path)
|
||||
if err != nil {
|
||||
return nil, xerrors.New("can't open metrics file")
|
||||
return nil, xerrors.Errorf("can't open metrics file %s: %w", path, err)
|
||||
}
|
||||
defer f.Close()
|
||||
|
||||
var metrics []*dto.MetricFamily
|
||||
|
||||
@@ -71,14 +75,55 @@ func readMetrics() ([]*dto.MetricFamily, error) {
|
||||
if errors.Is(err, io.EOF) {
|
||||
break
|
||||
} else if err != nil {
|
||||
return nil, err
|
||||
return nil, xerrors.Errorf("decoding metrics from %s: %w", path, err)
|
||||
}
|
||||
metrics = append(metrics, &m)
|
||||
}
|
||||
|
||||
return metrics, nil
|
||||
}
|
||||
|
||||
// readAndMergeMetrics reads metrics from both generated and static files,
|
||||
// merges them, and returns a sorted list. Generated metrics are produced
|
||||
// by the AST scanner that extracts metric definitions from the coder source
|
||||
// code while static metrics are manually maintained (e.g., go_*, process_*,
|
||||
// external dependencies).
|
||||
// Note: Static metrics take priority over generated metrics, allowing manual
|
||||
// overrides for metrics that can't be accurately extracted by the scanner.
|
||||
func readAndMergeMetrics() ([]*dto.MetricFamily, error) {
|
||||
generatedMetrics, err := readMetricsFromFile(generatedMetricsFile)
|
||||
if err != nil {
|
||||
return nil, xerrors.Errorf("reading generated metrics: %w", err)
|
||||
}
|
||||
|
||||
staticMetrics, err := readMetricsFromFile(staticMetricsFile)
|
||||
if err != nil {
|
||||
return nil, xerrors.Errorf("reading static metrics: %w", err)
|
||||
}
|
||||
|
||||
// Merge metrics, using a map to deduplicate by name.
|
||||
metricsByName := make(map[string]*dto.MetricFamily)
|
||||
|
||||
// Add generated metrics first.
|
||||
for _, m := range generatedMetrics {
|
||||
metricsByName[*m.Name] = m
|
||||
}
|
||||
|
||||
// Static metrics overwrite generated metrics if they exist.
|
||||
for _, m := range staticMetrics {
|
||||
metricsByName[*m.Name] = m
|
||||
}
|
||||
|
||||
// Convert back to slice and sort.
|
||||
var metrics []*dto.MetricFamily
|
||||
for _, m := range metricsByName {
|
||||
metrics = append(metrics, m)
|
||||
}
|
||||
|
||||
sort.Slice(metrics, func(i, j int) bool {
|
||||
return sort.StringsAreSorted([]string{*metrics[i].Name, *metrics[j].Name})
|
||||
return *metrics[i].Name < *metrics[j].Name
|
||||
})
|
||||
|
||||
return metrics, nil
|
||||
}
|
||||
|
||||
|
||||
+27
-819
@@ -1,58 +1,9 @@
|
||||
# HELP coderd_oauth2_external_requests_rate_limit_next_reset_unix Unix timestamp of the next interval
|
||||
# TYPE coderd_oauth2_external_requests_rate_limit_next_reset_unix gauge
|
||||
coderd_oauth2_external_requests_rate_limit_next_reset_unix{name="primary-github",resource="core"} 1.704835507e+09
|
||||
coderd_oauth2_external_requests_rate_limit_next_reset_unix{name="secondary-github",resource="core"} 1.704835507e+09
|
||||
# HELP coderd_oauth2_external_requests_rate_limit_remaining The remaining number of allowed requests in this interval.
|
||||
# TYPE coderd_oauth2_external_requests_rate_limit_remaining gauge
|
||||
coderd_oauth2_external_requests_rate_limit_remaining{name="primary-github",resource="core"} 4852
|
||||
coderd_oauth2_external_requests_rate_limit_remaining{name="secondary-github",resource="core"} 4867
|
||||
# HELP coderd_oauth2_external_requests_rate_limit_reset_in_seconds Seconds until the next interval
|
||||
# TYPE coderd_oauth2_external_requests_rate_limit_reset_in_seconds gauge
|
||||
coderd_oauth2_external_requests_rate_limit_reset_in_seconds{name="primary-github",resource="core"} 63.617162731
|
||||
coderd_oauth2_external_requests_rate_limit_reset_in_seconds{name="secondary-github",resource="core"} 121.82186601
|
||||
# HELP coderd_oauth2_external_requests_rate_limit The total number of allowed requests per interval.
|
||||
# TYPE coderd_oauth2_external_requests_rate_limit gauge
|
||||
coderd_oauth2_external_requests_rate_limit{name="primary-github",resource="core-unauthorized"} 5000
|
||||
coderd_oauth2_external_requests_rate_limit{name="secondary-github",resource="core-unauthorized"} 5000
|
||||
# HELP coderd_oauth2_external_requests_rate_limit_used The number of requests made in this interval.
|
||||
# TYPE coderd_oauth2_external_requests_rate_limit_used gauge
|
||||
coderd_oauth2_external_requests_rate_limit_used{name="primary-github",resource="core"} 148
|
||||
coderd_oauth2_external_requests_rate_limit_used{name="secondary-github",resource="core"} 133
|
||||
# HELP coderd_oauth2_external_requests_total The total number of api calls made to external oauth2 providers. 'status_code' will be 0 if the request failed with no response.
|
||||
# TYPE coderd_oauth2_external_requests_total counter
|
||||
coderd_oauth2_external_requests_total{name="primary-github",source="AppInstallations",status_code="200"} 12
|
||||
coderd_oauth2_external_requests_total{name="primary-github",source="Exchange",status_code="200"} 1
|
||||
coderd_oauth2_external_requests_total{name="primary-github",source="TokenSource",status_code="200"} 1
|
||||
coderd_oauth2_external_requests_total{name="primary-github",source="ValidateToken",status_code="200"} 16
|
||||
coderd_oauth2_external_requests_total{name="secondary-github",source="AppInstallations",status_code="403"} 4
|
||||
coderd_oauth2_external_requests_total{name="secondary-github",source="Exchange",status_code="200"} 2
|
||||
coderd_oauth2_external_requests_total{name="secondary-github",source="ValidateToken",status_code="200"} 5
|
||||
# HELP coderd_agents_apps Agent applications with statuses.
|
||||
# TYPE coderd_agents_apps gauge
|
||||
coderd_agents_apps{agent_name="main",app_name="code-server",health="healthy",username="admin",workspace_name="workspace-1"} 1
|
||||
coderd_agents_apps{agent_name="main",app_name="code-server",health="healthy",username="admin",workspace_name="workspace-2"} 1
|
||||
coderd_agents_apps{agent_name="main",app_name="code-server",health="healthy",username="admin",workspace_name="workspace-3"} 1
|
||||
# HELP coderd_agents_connection_latencies_seconds Agent connection latencies in seconds.
|
||||
# TYPE coderd_agents_connection_latencies_seconds gauge
|
||||
coderd_agents_connection_latencies_seconds{agent_name="main",derp_region="Coder Embedded Relay",preferred="true",username="admin",workspace_name="workspace-1"} 0.03018125
|
||||
coderd_agents_connection_latencies_seconds{agent_name="main",derp_region="Coder Embedded Relay",preferred="true",username="admin",workspace_name="workspace-2"} 0.028658416
|
||||
coderd_agents_connection_latencies_seconds{agent_name="main",derp_region="Coder Embedded Relay",preferred="true",username="admin",workspace_name="workspace-3"} 0.028041416
|
||||
# HELP coderd_agents_connections Agent connections with statuses.
|
||||
# TYPE coderd_agents_connections gauge
|
||||
coderd_agents_connections{agent_name="main",lifecycle_state="ready",status="connected",tailnet_node="nodeid:16966f7df70d8cc5",username="admin",workspace_name="workspace-3"} 1
|
||||
coderd_agents_connections{agent_name="main",lifecycle_state="start_timeout",status="connected",tailnet_node="nodeid:3237d00938be23e3",username="admin",workspace_name="workspace-2"} 1
|
||||
coderd_agents_connections{agent_name="main",lifecycle_state="start_timeout",status="connected",tailnet_node="nodeid:3779bd45d00be0eb",username="admin",workspace_name="workspace-1"} 1
|
||||
# HELP coderd_agents_up The number of active agents per workspace.
|
||||
# TYPE coderd_agents_up gauge
|
||||
coderd_agents_up{template_name="docker", username="admin",workspace_name="workspace-1"} 1
|
||||
coderd_agents_up{template_name="docker", username="admin",workspace_name="workspace-2"} 1
|
||||
coderd_agents_up{template_name="gcp", username="admin",workspace_name="workspace-3"} 1
|
||||
# HELP coderd_agentstats_startup_script_seconds The number of seconds the startup script took to execute.
|
||||
# TYPE coderd_agentstats_startup_script_seconds gauge
|
||||
coderd_agentstats_startup_script_seconds{agent_name="main",success="true",template_name="docker",username="admin",workspace_name="workspace-1"} 1.969900304
|
||||
# HELP agent_scripts_executed_total Total number of scripts executed by the Coder agent. Includes cron scheduled scripts.
|
||||
# TYPE agent_scripts_executed_total counter
|
||||
agent_scripts_executed_total{agent_name="main",success="true",template_name="docker",username="admin",workspace_name="workspace-1"} 1
|
||||
# HELP coderd_agentstats_startup_script_seconds The number of seconds the startup script took to execute.
|
||||
# TYPE coderd_agentstats_startup_script_seconds gauge
|
||||
coderd_agentstats_startup_script_seconds{agent_name="main",success="true",template_name="docker",username="admin",workspace_name="workspace-1"} 1.969900304
|
||||
# HELP coderd_agentstats_connection_count The number of established connections by agent
|
||||
# TYPE coderd_agentstats_connection_count gauge
|
||||
coderd_agentstats_connection_count{agent_name="main",username="admin",workspace_name="workspace1"} 2
|
||||
@@ -80,694 +31,6 @@ coderd_agentstats_session_count_vscode{agent_name="main",username="admin",worksp
|
||||
# HELP coderd_agentstats_tx_bytes Agent Tx bytes
|
||||
# TYPE coderd_agentstats_tx_bytes gauge
|
||||
coderd_agentstats_tx_bytes{agent_name="main",username="admin",workspace_name="workspace1"} 6643
|
||||
# HELP coderd_api_websocket_durations_seconds Websocket duration distribution of requests in seconds.
|
||||
# TYPE coderd_api_websocket_durations_seconds histogram
|
||||
coderd_api_websocket_durations_seconds_bucket{path="/api/v2/workspaceagents/me/coordinate",le="0.001"} 0
|
||||
coderd_api_websocket_durations_seconds_bucket{path="/api/v2/workspaceagents/me/coordinate",le="1"} 3
|
||||
coderd_api_websocket_durations_seconds_bucket{path="/api/v2/workspaceagents/me/coordinate",le="60"} 3
|
||||
coderd_api_websocket_durations_seconds_bucket{path="/api/v2/workspaceagents/me/coordinate",le="3600"} 4
|
||||
coderd_api_websocket_durations_seconds_bucket{path="/api/v2/workspaceagents/me/coordinate",le="54000"} 4
|
||||
coderd_api_websocket_durations_seconds_bucket{path="/api/v2/workspaceagents/me/coordinate",le="108000"} 4
|
||||
coderd_api_websocket_durations_seconds_bucket{path="/api/v2/workspaceagents/me/coordinate",le="+Inf"} 4
|
||||
coderd_api_websocket_durations_seconds_sum{path="/api/v2/workspaceagents/me/coordinate"} 156.042058706
|
||||
coderd_api_websocket_durations_seconds_count{path="/api/v2/workspaceagents/me/coordinate"} 4
|
||||
coderd_api_websocket_durations_seconds_bucket{path="/api/v2/workspaceagents/{workspaceagent}/pty",le="0.001"} 0
|
||||
coderd_api_websocket_durations_seconds_bucket{path="/api/v2/workspaceagents/{workspaceagent}/pty",le="1"} 0
|
||||
coderd_api_websocket_durations_seconds_bucket{path="/api/v2/workspaceagents/{workspaceagent}/pty",le="60"} 0
|
||||
coderd_api_websocket_durations_seconds_bucket{path="/api/v2/workspaceagents/{workspaceagent}/pty",le="3600"} 1
|
||||
coderd_api_websocket_durations_seconds_bucket{path="/api/v2/workspaceagents/{workspaceagent}/pty",le="54000"} 1
|
||||
coderd_api_websocket_durations_seconds_bucket{path="/api/v2/workspaceagents/{workspaceagent}/pty",le="108000"} 1
|
||||
coderd_api_websocket_durations_seconds_bucket{path="/api/v2/workspaceagents/{workspaceagent}/pty",le="+Inf"} 1
|
||||
coderd_api_websocket_durations_seconds_sum{path="/api/v2/workspaceagents/{workspaceagent}/pty"} 119.810027963
|
||||
coderd_api_websocket_durations_seconds_count{path="/api/v2/workspaceagents/{workspaceagent}/pty"} 1
|
||||
coderd_api_websocket_durations_seconds_bucket{path="/api/v2/workspacebuilds/{workspacebuild}/logs",le="0.001"} 0
|
||||
coderd_api_websocket_durations_seconds_bucket{path="/api/v2/workspacebuilds/{workspacebuild}/logs",le="1"} 1
|
||||
coderd_api_websocket_durations_seconds_bucket{path="/api/v2/workspacebuilds/{workspacebuild}/logs",le="60"} 1
|
||||
coderd_api_websocket_durations_seconds_bucket{path="/api/v2/workspacebuilds/{workspacebuild}/logs",le="3600"} 1
|
||||
coderd_api_websocket_durations_seconds_bucket{path="/api/v2/workspacebuilds/{workspacebuild}/logs",le="54000"} 1
|
||||
coderd_api_websocket_durations_seconds_bucket{path="/api/v2/workspacebuilds/{workspacebuild}/logs",le="108000"} 1
|
||||
coderd_api_websocket_durations_seconds_bucket{path="/api/v2/workspacebuilds/{workspacebuild}/logs",le="+Inf"} 1
|
||||
coderd_api_websocket_durations_seconds_sum{path="/api/v2/workspacebuilds/{workspacebuild}/logs"} 0.015562347
|
||||
coderd_api_websocket_durations_seconds_count{path="/api/v2/workspacebuilds/{workspacebuild}/logs"} 1
|
||||
# HELP coderd_api_active_users_duration_hour The number of users that have been active within the last hour.
|
||||
# TYPE coderd_api_active_users_duration_hour gauge
|
||||
coderd_api_active_users_duration_hour 0
|
||||
# HELP coderd_api_concurrent_requests The number of concurrent API requests.
|
||||
# TYPE coderd_api_concurrent_requests gauge
|
||||
coderd_api_concurrent_requests 3
|
||||
# HELP coderd_api_concurrent_websockets The total number of concurrent API websockets.
|
||||
# TYPE coderd_api_concurrent_websockets gauge
|
||||
coderd_api_concurrent_websockets 2
|
||||
# HELP coderd_api_request_latencies_seconds Latency distribution of requests in seconds.
|
||||
# TYPE coderd_api_request_latencies_seconds histogram
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="",le="0.001"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="",le="0.005"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="",le="0.01"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="",le="0.025"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="",le="0.05"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="",le="0.1"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="",le="0.5"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="",le="1"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="",le="5"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="",le="10"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="",le="30"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="",le="+Inf"} 1
|
||||
coderd_api_request_latencies_seconds_sum{method="GET",path=""} 6.687792526
|
||||
coderd_api_request_latencies_seconds_count{method="GET",path=""} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/appearance/",le="0.001"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/appearance/",le="0.005"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/appearance/",le="0.01"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/appearance/",le="0.025"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/appearance/",le="0.05"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/appearance/",le="0.1"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/appearance/",le="0.5"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/appearance/",le="1"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/appearance/",le="5"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/appearance/",le="10"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/appearance/",le="30"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/appearance/",le="+Inf"} 2
|
||||
coderd_api_request_latencies_seconds_sum{method="GET",path="/api/v2/appearance/"} 0.005080632
|
||||
coderd_api_request_latencies_seconds_count{method="GET",path="/api/v2/appearance/"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/applications/host/",le="0.001"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/applications/host/",le="0.005"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/applications/host/",le="0.01"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/applications/host/",le="0.025"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/applications/host/",le="0.05"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/applications/host/",le="0.1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/applications/host/",le="0.5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/applications/host/",le="1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/applications/host/",le="5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/applications/host/",le="10"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/applications/host/",le="30"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/applications/host/",le="+Inf"} 1
|
||||
coderd_api_request_latencies_seconds_sum{method="GET",path="/api/v2/applications/host/"} 0.001333428
|
||||
coderd_api_request_latencies_seconds_count{method="GET",path="/api/v2/applications/host/"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/buildinfo",le="0.001"} 5
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/buildinfo",le="0.005"} 5
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/buildinfo",le="0.01"} 5
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/buildinfo",le="0.025"} 5
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/buildinfo",le="0.05"} 5
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/buildinfo",le="0.1"} 5
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/buildinfo",le="0.5"} 5
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/buildinfo",le="1"} 5
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/buildinfo",le="5"} 5
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/buildinfo",le="10"} 5
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/buildinfo",le="30"} 5
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/buildinfo",le="+Inf"} 5
|
||||
coderd_api_request_latencies_seconds_sum{method="GET",path="/api/v2/buildinfo"} 0.000471086
|
||||
coderd_api_request_latencies_seconds_count{method="GET",path="/api/v2/buildinfo"} 5
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/entitlements",le="0.001"} 5
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/entitlements",le="0.005"} 5
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/entitlements",le="0.01"} 5
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/entitlements",le="0.025"} 5
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/entitlements",le="0.05"} 5
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/entitlements",le="0.1"} 5
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/entitlements",le="0.5"} 5
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/entitlements",le="1"} 5
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/entitlements",le="5"} 5
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/entitlements",le="10"} 5
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/entitlements",le="30"} 5
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/entitlements",le="+Inf"} 5
|
||||
coderd_api_request_latencies_seconds_sum{method="GET",path="/api/v2/entitlements"} 0.0007040899999999999
|
||||
coderd_api_request_latencies_seconds_count{method="GET",path="/api/v2/entitlements"} 5
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/*",le="0.001"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/*",le="0.005"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/*",le="0.01"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/*",le="0.025"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/*",le="0.05"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/*",le="0.1"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/*",le="0.5"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/*",le="1"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/*",le="5"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/*",le="10"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/*",le="30"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/*",le="+Inf"} 2
|
||||
coderd_api_request_latencies_seconds_sum{method="GET",path="/api/v2/organizations/*"} 0.000904424
|
||||
coderd_api_request_latencies_seconds_count{method="GET",path="/api/v2/organizations/*"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/{organization}/templates/",le="0.001"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/{organization}/templates/",le="0.005"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/{organization}/templates/",le="0.01"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/{organization}/templates/",le="0.025"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/{organization}/templates/",le="0.05"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/{organization}/templates/",le="0.1"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/{organization}/templates/",le="0.5"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/{organization}/templates/",le="1"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/{organization}/templates/",le="5"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/{organization}/templates/",le="10"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/{organization}/templates/",le="30"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/{organization}/templates/",le="+Inf"} 2
|
||||
coderd_api_request_latencies_seconds_sum{method="GET",path="/api/v2/organizations/{organization}/templates/"} 0.045776814
|
||||
coderd_api_request_latencies_seconds_count{method="GET",path="/api/v2/organizations/{organization}/templates/"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/{organization}/templates/examples",le="0.001"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/{organization}/templates/examples",le="0.005"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/{organization}/templates/examples",le="0.01"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/{organization}/templates/examples",le="0.025"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/{organization}/templates/examples",le="0.05"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/{organization}/templates/examples",le="0.1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/{organization}/templates/examples",le="0.5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/{organization}/templates/examples",le="1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/{organization}/templates/examples",le="5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/{organization}/templates/examples",le="10"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/{organization}/templates/examples",le="30"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/{organization}/templates/examples",le="+Inf"} 1
|
||||
coderd_api_request_latencies_seconds_sum{method="GET",path="/api/v2/organizations/{organization}/templates/examples"} 0.015829003
|
||||
coderd_api_request_latencies_seconds_count{method="GET",path="/api/v2/organizations/{organization}/templates/examples"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/{organization}/templates/{templatename}",le="0.001"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/{organization}/templates/{templatename}",le="0.005"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/{organization}/templates/{templatename}",le="0.01"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/{organization}/templates/{templatename}",le="0.025"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/{organization}/templates/{templatename}",le="0.05"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/{organization}/templates/{templatename}",le="0.1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/{organization}/templates/{templatename}",le="0.5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/{organization}/templates/{templatename}",le="1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/{organization}/templates/{templatename}",le="5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/{organization}/templates/{templatename}",le="10"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/{organization}/templates/{templatename}",le="30"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/organizations/{organization}/templates/{templatename}",le="+Inf"} 1
|
||||
coderd_api_request_latencies_seconds_sum{method="GET",path="/api/v2/organizations/{organization}/templates/{templatename}"} 0.004708487
|
||||
coderd_api_request_latencies_seconds_count{method="GET",path="/api/v2/organizations/{organization}/templates/{templatename}"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templates/{template}/",le="0.001"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templates/{template}/",le="0.005"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templates/{template}/",le="0.01"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templates/{template}/",le="0.025"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templates/{template}/",le="0.05"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templates/{template}/",le="0.1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templates/{template}/",le="0.5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templates/{template}/",le="1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templates/{template}/",le="5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templates/{template}/",le="10"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templates/{template}/",le="30"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templates/{template}/",le="+Inf"} 1
|
||||
coderd_api_request_latencies_seconds_sum{method="GET",path="/api/v2/templates/{template}/"} 0.004230499
|
||||
coderd_api_request_latencies_seconds_count{method="GET",path="/api/v2/templates/{template}/"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templates/{template}/daus",le="0.001"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templates/{template}/daus",le="0.005"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templates/{template}/daus",le="0.01"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templates/{template}/daus",le="0.025"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templates/{template}/daus",le="0.05"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templates/{template}/daus",le="0.1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templates/{template}/daus",le="0.5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templates/{template}/daus",le="1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templates/{template}/daus",le="5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templates/{template}/daus",le="10"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templates/{template}/daus",le="30"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templates/{template}/daus",le="+Inf"} 1
|
||||
coderd_api_request_latencies_seconds_sum{method="GET",path="/api/v2/templates/{template}/daus"} 0.004370203
|
||||
coderd_api_request_latencies_seconds_count{method="GET",path="/api/v2/templates/{template}/daus"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templates/{template}/versions/",le="0.001"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templates/{template}/versions/",le="0.005"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templates/{template}/versions/",le="0.01"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templates/{template}/versions/",le="0.025"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templates/{template}/versions/",le="0.05"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templates/{template}/versions/",le="0.1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templates/{template}/versions/",le="0.5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templates/{template}/versions/",le="1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templates/{template}/versions/",le="5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templates/{template}/versions/",le="10"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templates/{template}/versions/",le="30"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templates/{template}/versions/",le="+Inf"} 1
|
||||
coderd_api_request_latencies_seconds_sum{method="GET",path="/api/v2/templates/{template}/versions/"} 0.00656286
|
||||
coderd_api_request_latencies_seconds_count{method="GET",path="/api/v2/templates/{template}/versions/"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templateversions/{templateversion}/",le="0.001"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templateversions/{templateversion}/",le="0.005"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templateversions/{templateversion}/",le="0.01"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templateversions/{templateversion}/",le="0.025"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templateversions/{templateversion}/",le="0.05"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templateversions/{templateversion}/",le="0.1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templateversions/{templateversion}/",le="0.5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templateversions/{templateversion}/",le="1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templateversions/{templateversion}/",le="5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templateversions/{templateversion}/",le="10"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templateversions/{templateversion}/",le="30"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templateversions/{templateversion}/",le="+Inf"} 1
|
||||
coderd_api_request_latencies_seconds_sum{method="GET",path="/api/v2/templateversions/{templateversion}/"} 0.010606176
|
||||
coderd_api_request_latencies_seconds_count{method="GET",path="/api/v2/templateversions/{templateversion}/"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templateversions/{templateversion}/resources",le="0.001"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templateversions/{templateversion}/resources",le="0.005"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templateversions/{templateversion}/resources",le="0.01"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templateversions/{templateversion}/resources",le="0.025"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templateversions/{templateversion}/resources",le="0.05"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templateversions/{templateversion}/resources",le="0.1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templateversions/{templateversion}/resources",le="0.5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templateversions/{templateversion}/resources",le="1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templateversions/{templateversion}/resources",le="5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templateversions/{templateversion}/resources",le="10"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templateversions/{templateversion}/resources",le="30"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templateversions/{templateversion}/resources",le="+Inf"} 1
|
||||
coderd_api_request_latencies_seconds_sum{method="GET",path="/api/v2/templateversions/{templateversion}/resources"} 0.007596192
|
||||
coderd_api_request_latencies_seconds_count{method="GET",path="/api/v2/templateversions/{templateversion}/resources"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templateversions/{templateversion}/schema",le="0.001"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templateversions/{templateversion}/schema",le="0.005"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templateversions/{templateversion}/schema",le="0.01"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templateversions/{templateversion}/schema",le="0.025"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templateversions/{templateversion}/schema",le="0.05"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templateversions/{templateversion}/schema",le="0.1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templateversions/{templateversion}/schema",le="0.5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templateversions/{templateversion}/schema",le="1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templateversions/{templateversion}/schema",le="5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templateversions/{templateversion}/schema",le="10"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templateversions/{templateversion}/schema",le="30"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/templateversions/{templateversion}/schema",le="+Inf"} 1
|
||||
coderd_api_request_latencies_seconds_sum{method="GET",path="/api/v2/templateversions/{templateversion}/schema"} 0.00339007
|
||||
coderd_api_request_latencies_seconds_count{method="GET",path="/api/v2/templateversions/{templateversion}/schema"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/updatecheck",le="0.001"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/updatecheck",le="0.005"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/updatecheck",le="0.01"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/updatecheck",le="0.025"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/updatecheck",le="0.05"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/updatecheck",le="0.1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/updatecheck",le="0.5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/updatecheck",le="1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/updatecheck",le="5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/updatecheck",le="10"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/updatecheck",le="30"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/updatecheck",le="+Inf"} 1
|
||||
coderd_api_request_latencies_seconds_sum{method="GET",path="/api/v2/updatecheck"} 0.000390431
|
||||
coderd_api_request_latencies_seconds_count{method="GET",path="/api/v2/updatecheck"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/",le="0.001"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/",le="0.005"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/",le="0.01"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/",le="0.025"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/",le="0.05"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/",le="0.1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/",le="0.5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/",le="1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/",le="5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/",le="10"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/",le="30"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/",le="+Inf"} 1
|
||||
coderd_api_request_latencies_seconds_sum{method="GET",path="/api/v2/users/"} 0.003569641
|
||||
coderd_api_request_latencies_seconds_count{method="GET",path="/api/v2/users/"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/authmethods",le="0.001"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/authmethods",le="0.005"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/authmethods",le="0.01"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/authmethods",le="0.025"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/authmethods",le="0.05"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/authmethods",le="0.1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/authmethods",le="0.5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/authmethods",le="1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/authmethods",le="5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/authmethods",le="10"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/authmethods",le="30"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/authmethods",le="+Inf"} 1
|
||||
coderd_api_request_latencies_seconds_sum{method="GET",path="/api/v2/users/authmethods"} 0.000148719
|
||||
coderd_api_request_latencies_seconds_count{method="GET",path="/api/v2/users/authmethods"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/first",le="0.001"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/first",le="0.005"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/first",le="0.01"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/first",le="0.025"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/first",le="0.05"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/first",le="0.1"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/first",le="0.5"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/first",le="1"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/first",le="5"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/first",le="10"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/first",le="30"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/first",le="+Inf"} 2
|
||||
coderd_api_request_latencies_seconds_sum{method="GET",path="/api/v2/users/first"} 0.002299768
|
||||
coderd_api_request_latencies_seconds_count{method="GET",path="/api/v2/users/first"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}",le="0.001"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}",le="0.005"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}",le="0.01"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}",le="0.025"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}",le="0.05"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}",le="0.1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}",le="0.5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}",le="1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}",le="5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}",le="10"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}",le="30"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}",le="+Inf"} 1
|
||||
coderd_api_request_latencies_seconds_sum{method="GET",path="/api/v2/users/{user}"} 0.000131803
|
||||
coderd_api_request_latencies_seconds_count{method="GET",path="/api/v2/users/{user}"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}/",le="0.001"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}/",le="0.005"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}/",le="0.01"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}/",le="0.025"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}/",le="0.05"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}/",le="0.1"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}/",le="0.5"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}/",le="1"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}/",le="5"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}/",le="10"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}/",le="30"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}/",le="+Inf"} 2
|
||||
coderd_api_request_latencies_seconds_sum{method="GET",path="/api/v2/users/{user}/"} 0.012900051
|
||||
coderd_api_request_latencies_seconds_count{method="GET",path="/api/v2/users/{user}/"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}/*",le="0.001"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}/*",le="0.005"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}/*",le="0.01"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}/*",le="0.025"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}/*",le="0.05"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}/*",le="0.1"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}/*",le="0.5"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}/*",le="1"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}/*",le="5"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}/*",le="10"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}/*",le="30"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}/*",le="+Inf"} 2
|
||||
coderd_api_request_latencies_seconds_sum{method="GET",path="/api/v2/users/{user}/*"} 0.0017976070000000001
|
||||
coderd_api_request_latencies_seconds_count{method="GET",path="/api/v2/users/{user}/*"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}/workspace/{workspacename}/",le="0.001"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}/workspace/{workspacename}/",le="0.005"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}/workspace/{workspacename}/",le="0.01"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}/workspace/{workspacename}/",le="0.025"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}/workspace/{workspacename}/",le="0.05"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}/workspace/{workspacename}/",le="0.1"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}/workspace/{workspacename}/",le="0.5"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}/workspace/{workspacename}/",le="1"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}/workspace/{workspacename}/",le="5"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}/workspace/{workspacename}/",le="10"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}/workspace/{workspacename}/",le="30"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/users/{user}/workspace/{workspacename}/",le="+Inf"} 2
|
||||
coderd_api_request_latencies_seconds_sum{method="GET",path="/api/v2/users/{user}/workspace/{workspacename}/"} 0.014837208000000001
|
||||
coderd_api_request_latencies_seconds_count{method="GET",path="/api/v2/users/{user}/workspace/{workspacename}/"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspace-quota/{user}/",le="0.001"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspace-quota/{user}/",le="0.005"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspace-quota/{user}/",le="0.01"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspace-quota/{user}/",le="0.025"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspace-quota/{user}/",le="0.05"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspace-quota/{user}/",le="0.1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspace-quota/{user}/",le="0.5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspace-quota/{user}/",le="1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspace-quota/{user}/",le="5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspace-quota/{user}/",le="10"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspace-quota/{user}/",le="30"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspace-quota/{user}/",le="+Inf"} 1
|
||||
coderd_api_request_latencies_seconds_sum{method="GET",path="/api/v2/workspace-quota/{user}/"} 0.01856146
|
||||
coderd_api_request_latencies_seconds_count{method="GET",path="/api/v2/workspace-quota/{user}/"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaceagents/me/metadata",le="0.001"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaceagents/me/metadata",le="0.005"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaceagents/me/metadata",le="0.01"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaceagents/me/metadata",le="0.025"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaceagents/me/metadata",le="0.05"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaceagents/me/metadata",le="0.1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaceagents/me/metadata",le="0.5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaceagents/me/metadata",le="1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaceagents/me/metadata",le="5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaceagents/me/metadata",le="10"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaceagents/me/metadata",le="30"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaceagents/me/metadata",le="+Inf"} 1
|
||||
coderd_api_request_latencies_seconds_sum{method="GET",path="/api/v2/workspaceagents/me/metadata"} 0.005921315
|
||||
coderd_api_request_latencies_seconds_count{method="GET",path="/api/v2/workspaceagents/me/metadata"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaces",le="0.001"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaces",le="0.005"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaces",le="0.01"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaces",le="0.025"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaces",le="0.05"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaces",le="0.1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaces",le="0.5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaces",le="1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaces",le="5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaces",le="10"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaces",le="30"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaces",le="+Inf"} 1
|
||||
coderd_api_request_latencies_seconds_sum{method="GET",path="/api/v2/workspaces"} 0.000824226
|
||||
coderd_api_request_latencies_seconds_count{method="GET",path="/api/v2/workspaces"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaces/",le="0.001"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaces/",le="0.005"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaces/",le="0.01"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaces/",le="0.025"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaces/",le="0.05"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaces/",le="0.1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaces/",le="0.5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaces/",le="1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaces/",le="5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaces/",le="10"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaces/",le="30"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaces/",le="+Inf"} 1
|
||||
coderd_api_request_latencies_seconds_sum{method="GET",path="/api/v2/workspaces/"} 0.016112682
|
||||
coderd_api_request_latencies_seconds_count{method="GET",path="/api/v2/workspaces/"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaces/{workspace}/builds/",le="0.001"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaces/{workspace}/builds/",le="0.005"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaces/{workspace}/builds/",le="0.01"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaces/{workspace}/builds/",le="0.025"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaces/{workspace}/builds/",le="0.05"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaces/{workspace}/builds/",le="0.1"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaces/{workspace}/builds/",le="0.5"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaces/{workspace}/builds/",le="1"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaces/{workspace}/builds/",le="5"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaces/{workspace}/builds/",le="10"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaces/{workspace}/builds/",le="30"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/api/v2/workspaces/{workspace}/builds/",le="+Inf"} 2
|
||||
coderd_api_request_latencies_seconds_sum{method="GET",path="/api/v2/workspaces/{workspace}/builds/"} 0.022512011000000002
|
||||
coderd_api_request_latencies_seconds_count{method="GET",path="/api/v2/workspaces/{workspace}/builds/"} 2
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/healthz",le="0.001"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/healthz",le="0.005"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/healthz",le="0.01"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/healthz",le="0.025"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/healthz",le="0.05"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/healthz",le="0.1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/healthz",le="0.5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/healthz",le="1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/healthz",le="5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/healthz",le="10"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/healthz",le="30"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="GET",path="/healthz",le="+Inf"} 1
|
||||
coderd_api_request_latencies_seconds_sum{method="GET",path="/healthz"} 0.000109226
|
||||
coderd_api_request_latencies_seconds_count{method="GET",path="/healthz"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/authcheck/",le="0.001"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/authcheck/",le="0.005"} 4
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/authcheck/",le="0.01"} 6
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/authcheck/",le="0.025"} 6
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/authcheck/",le="0.05"} 6
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/authcheck/",le="0.1"} 6
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/authcheck/",le="0.5"} 6
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/authcheck/",le="1"} 6
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/authcheck/",le="5"} 6
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/authcheck/",le="10"} 6
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/authcheck/",le="30"} 6
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/authcheck/",le="+Inf"} 6
|
||||
coderd_api_request_latencies_seconds_sum{method="POST",path="/api/v2/authcheck/"} 0.027684736
|
||||
coderd_api_request_latencies_seconds_count{method="POST",path="/api/v2/authcheck/"} 6
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/files",le="0.001"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/files",le="0.005"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/files",le="0.01"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/files",le="0.025"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/files",le="0.05"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/files",le="0.1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/files",le="0.5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/files",le="1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/files",le="5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/files",le="10"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/files",le="30"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/files",le="+Inf"} 1
|
||||
coderd_api_request_latencies_seconds_sum{method="POST",path="/api/v2/files"} 0.000426037
|
||||
coderd_api_request_latencies_seconds_count{method="POST",path="/api/v2/files"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/organizations/{organization}/members/{user}/workspaces",le="0.001"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/organizations/{organization}/members/{user}/workspaces",le="0.005"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/organizations/{organization}/members/{user}/workspaces",le="0.01"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/organizations/{organization}/members/{user}/workspaces",le="0.025"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/organizations/{organization}/members/{user}/workspaces",le="0.05"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/organizations/{organization}/members/{user}/workspaces",le="0.1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/organizations/{organization}/members/{user}/workspaces",le="0.5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/organizations/{organization}/members/{user}/workspaces",le="1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/organizations/{organization}/members/{user}/workspaces",le="5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/organizations/{organization}/members/{user}/workspaces",le="10"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/organizations/{organization}/members/{user}/workspaces",le="30"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/organizations/{organization}/members/{user}/workspaces",le="+Inf"} 1
|
||||
coderd_api_request_latencies_seconds_sum{method="POST",path="/api/v2/organizations/{organization}/members/{user}/workspaces"} 0.014369701
|
||||
coderd_api_request_latencies_seconds_count{method="POST",path="/api/v2/organizations/{organization}/members/{user}/workspaces"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/users/login",le="0.001"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/users/login",le="0.005"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/users/login",le="0.01"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/users/login",le="0.025"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/users/login",le="0.05"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/users/login",le="0.1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/users/login",le="0.5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/users/login",le="1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/users/login",le="5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/users/login",le="10"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/users/login",le="30"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/users/login",le="+Inf"} 1
|
||||
coderd_api_request_latencies_seconds_sum{method="POST",path="/api/v2/users/login"} 0.079973393
|
||||
coderd_api_request_latencies_seconds_count{method="POST",path="/api/v2/users/login"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/workspaceagents/me/report-stats",le="0.001"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/workspaceagents/me/report-stats",le="0.005"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/workspaceagents/me/report-stats",le="0.01"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/workspaceagents/me/report-stats",le="0.025"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/workspaceagents/me/report-stats",le="0.05"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/workspaceagents/me/report-stats",le="0.1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/workspaceagents/me/report-stats",le="0.5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/workspaceagents/me/report-stats",le="1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/workspaceagents/me/report-stats",le="5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/workspaceagents/me/report-stats",le="10"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/workspaceagents/me/report-stats",le="30"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/workspaceagents/me/report-stats",le="+Inf"} 1
|
||||
coderd_api_request_latencies_seconds_sum{method="POST",path="/api/v2/workspaceagents/me/report-stats"} 0.001123106
|
||||
coderd_api_request_latencies_seconds_count{method="POST",path="/api/v2/workspaceagents/me/report-stats"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/workspaceagents/me/version",le="0.001"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/workspaceagents/me/version",le="0.005"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/workspaceagents/me/version",le="0.01"} 0
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/workspaceagents/me/version",le="0.025"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/workspaceagents/me/version",le="0.05"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/workspaceagents/me/version",le="0.1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/workspaceagents/me/version",le="0.5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/workspaceagents/me/version",le="1"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/workspaceagents/me/version",le="5"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/workspaceagents/me/version",le="10"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/workspaceagents/me/version",le="30"} 1
|
||||
coderd_api_request_latencies_seconds_bucket{method="POST",path="/api/v2/workspaceagents/me/version",le="+Inf"} 1
|
||||
coderd_api_request_latencies_seconds_sum{method="POST",path="/api/v2/workspaceagents/me/version"} 0.012078959
|
||||
coderd_api_request_latencies_seconds_count{method="POST",path="/api/v2/workspaceagents/me/version"} 1
|
||||
# HELP coderd_api_requests_processed_total The total number of processed API requests
|
||||
# TYPE coderd_api_requests_processed_total counter
|
||||
coderd_api_requests_processed_total{code="200",method="GET",path=""} 1
|
||||
coderd_api_requests_processed_total{code="200",method="GET",path="/api/v2/appearance/"} 2
|
||||
coderd_api_requests_processed_total{code="200",method="GET",path="/api/v2/applications/host/"} 1
|
||||
coderd_api_requests_processed_total{code="200",method="GET",path="/api/v2/buildinfo"} 5
|
||||
coderd_api_requests_processed_total{code="200",method="GET",path="/api/v2/entitlements"} 5
|
||||
coderd_api_requests_processed_total{code="200",method="GET",path="/api/v2/organizations/{organization}/templates/"} 2
|
||||
coderd_api_requests_processed_total{code="200",method="GET",path="/api/v2/organizations/{organization}/templates/examples"} 1
|
||||
coderd_api_requests_processed_total{code="200",method="GET",path="/api/v2/organizations/{organization}/templates/{templatename}"} 1
|
||||
coderd_api_requests_processed_total{code="200",method="GET",path="/api/v2/templates/{template}/"} 1
|
||||
coderd_api_requests_processed_total{code="200",method="GET",path="/api/v2/templates/{template}/daus"} 1
|
||||
coderd_api_requests_processed_total{code="200",method="GET",path="/api/v2/templates/{template}/versions/"} 1
|
||||
coderd_api_requests_processed_total{code="200",method="GET",path="/api/v2/templateversions/{templateversion}/"} 1
|
||||
coderd_api_requests_processed_total{code="200",method="GET",path="/api/v2/templateversions/{templateversion}/resources"} 1
|
||||
coderd_api_requests_processed_total{code="200",method="GET",path="/api/v2/templateversions/{templateversion}/schema"} 1
|
||||
coderd_api_requests_processed_total{code="200",method="GET",path="/api/v2/updatecheck"} 1
|
||||
coderd_api_requests_processed_total{code="200",method="GET",path="/api/v2/users/"} 1
|
||||
coderd_api_requests_processed_total{code="200",method="GET",path="/api/v2/users/authmethods"} 1
|
||||
coderd_api_requests_processed_total{code="200",method="GET",path="/api/v2/users/first"} 2
|
||||
coderd_api_requests_processed_total{code="200",method="GET",path="/api/v2/users/{user}/"} 2
|
||||
coderd_api_requests_processed_total{code="200",method="GET",path="/api/v2/users/{user}/workspace/{workspacename}/"} 2
|
||||
coderd_api_requests_processed_total{code="200",method="GET",path="/api/v2/workspace-quota/{user}/"} 1
|
||||
coderd_api_requests_processed_total{code="200",method="GET",path="/api/v2/workspaceagents/me/metadata"} 1
|
||||
coderd_api_requests_processed_total{code="200",method="GET",path="/api/v2/workspaces/"} 1
|
||||
coderd_api_requests_processed_total{code="200",method="GET",path="/api/v2/workspaces/{workspace}/builds/"} 2
|
||||
coderd_api_requests_processed_total{code="200",method="GET",path="/healthz"} 1
|
||||
coderd_api_requests_processed_total{code="200",method="POST",path="/api/v2/authcheck/"} 6
|
||||
coderd_api_requests_processed_total{code="200",method="POST",path="/api/v2/workspaceagents/me/report-stats"} 1
|
||||
coderd_api_requests_processed_total{code="200",method="POST",path="/api/v2/workspaceagents/me/version"} 1
|
||||
coderd_api_requests_processed_total{code="201",method="POST",path="/api/v2/organizations/{organization}/members/{user}/workspaces"} 1
|
||||
coderd_api_requests_processed_total{code="201",method="POST",path="/api/v2/users/login"} 1
|
||||
coderd_api_requests_processed_total{code="401",method="GET",path="/api/v2/organizations/*"} 2
|
||||
coderd_api_requests_processed_total{code="401",method="GET",path="/api/v2/users/{user}"} 1
|
||||
coderd_api_requests_processed_total{code="401",method="GET",path="/api/v2/users/{user}/*"} 2
|
||||
coderd_api_requests_processed_total{code="401",method="GET",path="/api/v2/workspaces"} 1
|
||||
coderd_api_requests_processed_total{code="401",method="POST",path="/api/v2/files"} 1
|
||||
# HELP coderd_api_workspace_latest_build The latest workspace builds with a status.
|
||||
# TYPE coderd_api_workspace_latest_build gauge
|
||||
coderd_api_workspace_latest_build{status="succeeded"} 1
|
||||
# HELP coderd_insights_applications_usage_seconds The application usage per template.
|
||||
# TYPE coderd_insights_applications_usage_seconds gauge
|
||||
coderd_insights_applications_usage_seconds{application_name="JetBrains",slug="",template_name="code-server-pod"} 1
|
||||
# HELP coderd_insights_parameters The parameter usage per template.
|
||||
# TYPE coderd_insights_parameters gauge
|
||||
coderd_insights_parameters{parameter_name="cpu",parameter_type="string",parameter_value="8",template_name="code-server-pod"} 1
|
||||
# HELP coderd_insights_templates_active_users The number of active users of the template.
|
||||
# TYPE coderd_insights_templates_active_users gauge
|
||||
coderd_insights_templates_active_users{template_name="code-server-pod"} 1
|
||||
# HELP coderd_license_active_users The number of active users.
|
||||
# TYPE coderd_license_active_users gauge
|
||||
coderd_license_active_users 1
|
||||
# HELP coderd_license_limit_users The user seats limit based on the active Coder license.
|
||||
# TYPE coderd_license_limit_users gauge
|
||||
coderd_license_limit_users 25
|
||||
# HELP coderd_license_user_limit_enabled Returns 1 if the current license enforces the user limit.
|
||||
# TYPE coderd_license_user_limit_enabled gauge
|
||||
coderd_license_user_limit_enabled 1
|
||||
# HELP coderd_metrics_collector_agents_execution_seconds Histogram for duration of agents metrics collection in seconds.
|
||||
# TYPE coderd_metrics_collector_agents_execution_seconds histogram
|
||||
coderd_metrics_collector_agents_execution_seconds_bucket{le="0.001"} 0
|
||||
coderd_metrics_collector_agents_execution_seconds_bucket{le="0.005"} 0
|
||||
coderd_metrics_collector_agents_execution_seconds_bucket{le="0.01"} 0
|
||||
coderd_metrics_collector_agents_execution_seconds_bucket{le="0.025"} 0
|
||||
coderd_metrics_collector_agents_execution_seconds_bucket{le="0.05"} 2
|
||||
coderd_metrics_collector_agents_execution_seconds_bucket{le="0.1"} 2
|
||||
coderd_metrics_collector_agents_execution_seconds_bucket{le="0.5"} 2
|
||||
coderd_metrics_collector_agents_execution_seconds_bucket{le="1"} 2
|
||||
coderd_metrics_collector_agents_execution_seconds_bucket{le="5"} 2
|
||||
coderd_metrics_collector_agents_execution_seconds_bucket{le="10"} 2
|
||||
coderd_metrics_collector_agents_execution_seconds_bucket{le="30"} 2
|
||||
coderd_metrics_collector_agents_execution_seconds_bucket{le="+Inf"} 2
|
||||
coderd_metrics_collector_agents_execution_seconds_sum 0.0592915
|
||||
coderd_metrics_collector_agents_execution_seconds_count 2
|
||||
# HELP coderd_provisionerd_job_timings_seconds The provisioner job time duration in seconds.
|
||||
# TYPE coderd_provisionerd_job_timings_seconds histogram
|
||||
coderd_provisionerd_job_timings_seconds_bucket{provisioner="terraform",status="success",le="1"} 0
|
||||
coderd_provisionerd_job_timings_seconds_bucket{provisioner="terraform",status="success",le="10"} 0
|
||||
coderd_provisionerd_job_timings_seconds_bucket{provisioner="terraform",status="success",le="30"} 1
|
||||
coderd_provisionerd_job_timings_seconds_bucket{provisioner="terraform",status="success",le="60"} 1
|
||||
coderd_provisionerd_job_timings_seconds_bucket{provisioner="terraform",status="success",le="300"} 1
|
||||
coderd_provisionerd_job_timings_seconds_bucket{provisioner="terraform",status="success",le="600"} 1
|
||||
coderd_provisionerd_job_timings_seconds_bucket{provisioner="terraform",status="success",le="1800"} 1
|
||||
coderd_provisionerd_job_timings_seconds_bucket{provisioner="terraform",status="success",le="3600"} 1
|
||||
coderd_provisionerd_job_timings_seconds_bucket{provisioner="terraform",status="success",le="+Inf"} 1
|
||||
coderd_provisionerd_job_timings_seconds_sum{provisioner="terraform",status="success"} 14.739479476
|
||||
coderd_provisionerd_job_timings_seconds_count{provisioner="terraform",status="success"} 1
|
||||
# HELP coderd_provisionerd_jobs_current The number of currently running provisioner jobs.
|
||||
# TYPE coderd_provisionerd_jobs_current gauge
|
||||
coderd_provisionerd_jobs_current{provisioner="terraform"} 0
|
||||
# HELP coderd_provisionerd_num_daemons The number of provisioner daemons.
|
||||
# TYPE coderd_provisionerd_num_daemons gauge
|
||||
coderd_provisionerd_num_daemons 3
|
||||
# HELP coderd_provisionerd_workspace_build_timings_seconds The time taken for a workspace to build.
|
||||
# TYPE coderd_provisionerd_workspace_build_timings_seconds histogram
|
||||
coderd_provisionerd_workspace_build_timings_seconds_bucket{status="success",template_name="docker",template_version="gallant_wright0",workspace_transition="START",le="1"} 0
|
||||
coderd_provisionerd_workspace_build_timings_seconds_bucket{status="success",template_name="docker",template_version="gallant_wright0",workspace_transition="START",le="10"} 0
|
||||
coderd_provisionerd_workspace_build_timings_seconds_bucket{status="success",template_name="docker",template_version="gallant_wright0",workspace_transition="START",le="30"} 0
|
||||
coderd_provisionerd_workspace_build_timings_seconds_bucket{status="success",template_name="docker",template_version="gallant_wright0",workspace_transition="START",le="60"} 1
|
||||
coderd_provisionerd_workspace_build_timings_seconds_bucket{status="success",template_name="docker",template_version="gallant_wright0",workspace_transition="START",le="300"} 1
|
||||
coderd_provisionerd_workspace_build_timings_seconds_bucket{status="success",template_name="docker",template_version="gallant_wright0",workspace_transition="START",le="600"} 1
|
||||
coderd_provisionerd_workspace_build_timings_seconds_bucket{status="success",template_name="docker",template_version="gallant_wright0",workspace_transition="START",le="1800"} 1
|
||||
coderd_provisionerd_workspace_build_timings_seconds_bucket{status="success",template_name="docker",template_version="gallant_wright0",workspace_transition="START",le="3600"} 1
|
||||
coderd_provisionerd_workspace_build_timings_seconds_bucket{status="success",template_name="docker",template_version="gallant_wright0",workspace_transition="START",le="+Inf"} 1
|
||||
coderd_provisionerd_workspace_build_timings_seconds_sum{status="success",template_name="docker",template_version="gallant_wright0",workspace_transition="START"} 31.042659852
|
||||
coderd_provisionerd_workspace_build_timings_seconds_count{status="success",template_name="docker",template_version="gallant_wright0",workspace_transition="START"} 1
|
||||
# HELP coderd_workspace_latest_build_status The current workspace statuses by template, transition, and owner.
|
||||
# TYPE coderd_workspace_latest_build_status gauge
|
||||
coderd_workspace_latest_build_status{status="failed",template_name="docker",template_version="sweet_gould9",workspace_owner="admin",workspace_transition="stop"} 1
|
||||
# HELP coderd_workspace_builds_total The number of workspaces started, updated, or deleted.
|
||||
# TYPE coderd_workspace_builds_total counter
|
||||
coderd_workspace_builds_total{action="START",owner_email="admin@coder.com",status="failed",template_name="docker",template_version="gallant_wright0",workspace_name="test1"} 1
|
||||
coderd_workspace_builds_total{action="START",owner_email="admin@coder.com",status="success",template_name="docker",template_version="gallant_wright0",workspace_name="test1"} 1
|
||||
coderd_workspace_builds_total{action="STOP",owner_email="admin@coder.com",status="success",template_name="docker",template_version="gallant_wright0",workspace_name="test1"} 1
|
||||
# HELP coderd_workspace_creation_total Total regular (non-prebuilt) workspace creations by organization, template, and preset.
|
||||
# TYPE coderd_workspace_creation_total counter
|
||||
coderd_workspace_creation_total{organization_name="{organization}",preset_name="",template_name="docker"} 1
|
||||
# HELP coderd_workspace_creation_duration_seconds Time to create a workspace by organization, template, preset, and type (regular or prebuild).
|
||||
# TYPE coderd_workspace_creation_duration_seconds histogram
|
||||
coderd_workspace_creation_duration_seconds_bucket{organization_name="{organization}",preset_name="Falkenstein",template_name="docker",type="prebuild",le="1"} 0
|
||||
coderd_workspace_creation_duration_seconds_bucket{organization_name="{organization}",preset_name="Falkenstein",template_name="docker",type="prebuild",le="10"} 1
|
||||
coderd_workspace_creation_duration_seconds_bucket{organization_name="{organization}",preset_name="Falkenstein",template_name="docker",type="prebuild",le="30"} 1
|
||||
coderd_workspace_creation_duration_seconds_bucket{organization_name="{organization}",preset_name="Falkenstein",template_name="docker",type="prebuild",le="60"} 1
|
||||
coderd_workspace_creation_duration_seconds_bucket{organization_name="{organization}",preset_name="Falkenstein",template_name="docker",type="prebuild",le="300"} 1
|
||||
coderd_workspace_creation_duration_seconds_bucket{organization_name="{organization}",preset_name="Falkenstein",template_name="docker",type="prebuild",le="600"} 1
|
||||
coderd_workspace_creation_duration_seconds_bucket{organization_name="{organization}",preset_name="Falkenstein",template_name="docker",type="prebuild",le="1800"} 1
|
||||
coderd_workspace_creation_duration_seconds_bucket{organization_name="{organization}",preset_name="Falkenstein",template_name="docker",type="prebuild",le="3600"} 1
|
||||
coderd_workspace_creation_duration_seconds_bucket{organization_name="{organization}",preset_name="Falkenstein",template_name="docker",type="prebuild",le="+Inf"} 1
|
||||
coderd_workspace_creation_duration_seconds_sum{organization_name="{organization}",preset_name="Falkenstein",template_name="docker",type="prebuild"} 4.406214
|
||||
coderd_workspace_creation_duration_seconds_count{organization_name="{organization}",preset_name="Falkenstein",template_name="docker",type="prebuild"} 1
|
||||
# HELP coderd_template_workspace_build_duration_seconds Duration from workspace build creation to agent ready, by template.
|
||||
# TYPE coderd_template_workspace_build_duration_seconds histogram
|
||||
coderd_template_workspace_build_duration_seconds_bucket{is_prebuild="false",organization_name="{organization}",status="success",template_name="docker",transition="start",le="1"} 0
|
||||
coderd_template_workspace_build_duration_seconds_bucket{is_prebuild="false",organization_name="{organization}",status="success",template_name="docker",transition="start",le="10"} 1
|
||||
coderd_template_workspace_build_duration_seconds_bucket{is_prebuild="false",organization_name="{organization}",status="success",template_name="docker",transition="start",le="30"} 1
|
||||
coderd_template_workspace_build_duration_seconds_bucket{is_prebuild="false",organization_name="{organization}",status="success",template_name="docker",transition="start",le="60"} 1
|
||||
coderd_template_workspace_build_duration_seconds_bucket{is_prebuild="false",organization_name="{organization}",status="success",template_name="docker",transition="start",le="300"} 1
|
||||
coderd_template_workspace_build_duration_seconds_bucket{is_prebuild="false",organization_name="{organization}",status="success",template_name="docker",transition="start",le="600"} 1
|
||||
coderd_template_workspace_build_duration_seconds_bucket{is_prebuild="false",organization_name="{organization}",status="success",template_name="docker",transition="start",le="1800"} 1
|
||||
coderd_template_workspace_build_duration_seconds_bucket{is_prebuild="false",organization_name="{organization}",status="success",template_name="docker",transition="start",le="3600"} 1
|
||||
coderd_template_workspace_build_duration_seconds_bucket{is_prebuild="false",organization_name="{organization}",status="success",template_name="docker",transition="start",le="+Inf"} 1
|
||||
coderd_template_workspace_build_duration_seconds_sum{is_prebuild="false",organization_name="{organization}",status="success",template_name="docker",transition="start"} 7.241532
|
||||
coderd_template_workspace_build_duration_seconds_count{is_prebuild="false",organization_name="{organization}",status="success",template_name="docker",transition="start"} 1
|
||||
# HELP coderd_prebuilt_workspace_claim_duration_seconds Time to claim a prebuilt workspace by organization, template, and preset.
|
||||
# TYPE coderd_prebuilt_workspace_claim_duration_seconds histogram
|
||||
coderd_prebuilt_workspace_claim_duration_seconds_bucket{organization_name="{organization}",preset_name="Falkenstein",template_name="docker",le="1"} 0
|
||||
coderd_prebuilt_workspace_claim_duration_seconds_bucket{organization_name="{organization}",preset_name="Falkenstein",template_name="docker",le="5"} 1
|
||||
coderd_prebuilt_workspace_claim_duration_seconds_bucket{organization_name="{organization}",preset_name="Falkenstein",template_name="docker",le="10"} 1
|
||||
coderd_prebuilt_workspace_claim_duration_seconds_bucket{organization_name="{organization}",preset_name="Falkenstein",template_name="docker",le="20"} 1
|
||||
coderd_prebuilt_workspace_claim_duration_seconds_bucket{organization_name="{organization}",preset_name="Falkenstein",template_name="docker",le="30"} 1
|
||||
coderd_prebuilt_workspace_claim_duration_seconds_bucket{organization_name="{organization}",preset_name="Falkenstein",template_name="docker",le="60"} 1
|
||||
coderd_prebuilt_workspace_claim_duration_seconds_bucket{organization_name="{organization}",preset_name="Falkenstein",template_name="docker",le="120"} 1
|
||||
coderd_prebuilt_workspace_claim_duration_seconds_bucket{organization_name="{organization}",preset_name="Falkenstein",template_name="docker",le="180"} 1
|
||||
coderd_prebuilt_workspace_claim_duration_seconds_bucket{organization_name="{organization}",preset_name="Falkenstein",template_name="docker",le="240"} 1
|
||||
coderd_prebuilt_workspace_claim_duration_seconds_bucket{organization_name="{organization}",preset_name="Falkenstein",template_name="docker",le="300"} 1
|
||||
coderd_prebuilt_workspace_claim_duration_seconds_bucket{organization_name="{organization}",preset_name="Falkenstein",template_name="docker",le="+Inf"} 1
|
||||
coderd_prebuilt_workspace_claim_duration_seconds_sum{organization_name="{organization}",preset_name="Falkenstein",template_name="docker"} 4.860075
|
||||
coderd_prebuilt_workspace_claim_duration_seconds_count{organization_name="{organization}",preset_name="Falkenstein",template_name="docker"} 1
|
||||
# HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles.
|
||||
# TYPE go_gc_duration_seconds summary
|
||||
go_gc_duration_seconds{quantile="0"} 2.4056e-05
|
||||
@@ -921,82 +184,27 @@ coder_aibridged_tokens_total{initiator_id="95f6752b-08cc-4cf1-97f7-c2165e3519c5"
|
||||
coder_aibridged_tokens_total{initiator_id="95f6752b-08cc-4cf1-97f7-c2165e3519c5",model="gpt-5-nano",provider="openai",type="output"} 2014
|
||||
coder_aibridged_tokens_total{initiator_id="95f6752b-08cc-4cf1-97f7-c2165e3519c5",model="gpt-5-nano",provider="openai",type="prompt_audio"} 0
|
||||
coder_aibridged_tokens_total{initiator_id="95f6752b-08cc-4cf1-97f7-c2165e3519c5",model="gpt-5-nano",provider="openai",type="prompt_cached"} 31872
|
||||
#HELP coderd_agentapi_metadata_batch_size Total number of metadata entries in each batch, updated before flushes.
|
||||
# TYPE coderd_agentapi_metadata_batch_size histogram
|
||||
coderd_agentapi_metadata_batch_size_bucket{le="10"} 11
|
||||
coderd_agentapi_metadata_batch_size_bucket{le="25"} 12
|
||||
coderd_agentapi_metadata_batch_size_bucket{le="50"} 12
|
||||
coderd_agentapi_metadata_batch_size_bucket{le="100"} 12
|
||||
coderd_agentapi_metadata_batch_size_bucket{le="150"} 12
|
||||
coderd_agentapi_metadata_batch_size_bucket{le="200"} 12
|
||||
coderd_agentapi_metadata_batch_size_bucket{le="250"} 12
|
||||
coderd_agentapi_metadata_batch_size_bucket{le="300"} 12
|
||||
coderd_agentapi_metadata_batch_size_bucket{le="350"} 12
|
||||
coderd_agentapi_metadata_batch_size_bucket{le="400"} 12
|
||||
coderd_agentapi_metadata_batch_size_bucket{le="450"} 12
|
||||
coderd_agentapi_metadata_batch_size_bucket{le="500"} 12
|
||||
coderd_agentapi_metadata_batch_size_bucket{le="+Inf"} 12
|
||||
coderd_agentapi_metadata_batch_size_sum 71
|
||||
coderd_agentapi_metadata_batch_size_count 12
|
||||
# HELP coderd_agentapi_metadata_batch_utilization Number of metadata keys per agent in each batch, updated before flushes.
|
||||
# TYPE coderd_agentapi_metadata_batch_utilization histogram
|
||||
coderd_agentapi_metadata_batch_utilization_bucket{le="1"} 0
|
||||
coderd_agentapi_metadata_batch_utilization_bucket{le="2"} 0
|
||||
coderd_agentapi_metadata_batch_utilization_bucket{le="3"} 0
|
||||
coderd_agentapi_metadata_batch_utilization_bucket{le="4"} 0
|
||||
coderd_agentapi_metadata_batch_utilization_bucket{le="5"} 10
|
||||
coderd_agentapi_metadata_batch_utilization_bucket{le="6"} 10
|
||||
coderd_agentapi_metadata_batch_utilization_bucket{le="7"} 13
|
||||
coderd_agentapi_metadata_batch_utilization_bucket{le="8"} 13
|
||||
coderd_agentapi_metadata_batch_utilization_bucket{le="9"} 13
|
||||
coderd_agentapi_metadata_batch_utilization_bucket{le="10"} 13
|
||||
coderd_agentapi_metadata_batch_utilization_bucket{le="15"} 13
|
||||
coderd_agentapi_metadata_batch_utilization_bucket{le="20"} 13
|
||||
coderd_agentapi_metadata_batch_utilization_bucket{le="40"} 13
|
||||
coderd_agentapi_metadata_batch_utilization_bucket{le="80"} 13
|
||||
coderd_agentapi_metadata_batch_utilization_bucket{le="160"} 13
|
||||
coderd_agentapi_metadata_batch_utilization_bucket{le="+Inf"} 13
|
||||
coderd_agentapi_metadata_batch_utilization_sum 71
|
||||
coderd_agentapi_metadata_batch_utilization_count 13
|
||||
# HELP coderd_agentapi_metadata_batches_total Total number of metadata batches flushed.
|
||||
# TYPE coderd_agentapi_metadata_batches_total counter
|
||||
coderd_agentapi_metadata_batches_total{reason="scheduled"} 12
|
||||
# HELP coderd_agentapi_metadata_dropped_keys_total Total number of metadata keys dropped due to capacity limits.
|
||||
# TYPE coderd_agentapi_metadata_dropped_keys_total counter
|
||||
coderd_agentapi_metadata_dropped_keys_total 0
|
||||
# HELP coderd_agentapi_metadata_flush_duration_seconds Time taken to flush metadata batch to database and pubsub.
|
||||
# TYPE coderd_agentapi_metadata_flush_duration_seconds histogram
|
||||
coderd_agentapi_metadata_flush_duration_seconds_bucket{reason="scheduled",le="0.01"} 12
|
||||
coderd_agentapi_metadata_flush_duration_seconds_bucket{reason="scheduled",le="0.025"} 12
|
||||
coderd_agentapi_metadata_flush_duration_seconds_bucket{reason="scheduled",le="0.05"} 12
|
||||
coderd_agentapi_metadata_flush_duration_seconds_bucket{reason="scheduled",le="0.1"} 12
|
||||
coderd_agentapi_metadata_flush_duration_seconds_bucket{reason="scheduled",le="0.25"} 12
|
||||
coderd_agentapi_metadata_flush_duration_seconds_bucket{reason="scheduled",le="0.5"} 12
|
||||
coderd_agentapi_metadata_flush_duration_seconds_bucket{reason="scheduled",le="1"} 12
|
||||
coderd_agentapi_metadata_flush_duration_seconds_bucket{reason="scheduled",le="2.5"} 12
|
||||
coderd_agentapi_metadata_flush_duration_seconds_bucket{reason="scheduled",le="5"} 12
|
||||
coderd_agentapi_metadata_flush_duration_seconds_bucket{reason="scheduled",le="+Inf"} 12
|
||||
coderd_agentapi_metadata_flush_duration_seconds_sum{reason="scheduled"} 0.008704553
|
||||
coderd_agentapi_metadata_flush_duration_seconds_count{reason="scheduled"} 12
|
||||
# HELP coderd_agentapi_metadata_flushed_total Total number of unique metadatas flushed.
|
||||
# TYPE coderd_agentapi_metadata_flushed_total counter
|
||||
coderd_agentapi_metadata_flushed_total 71
|
||||
# HELP coderd_agentapi_metadata_publish_errors_total Total number of metadata batch pubsub publish calls that have resulted in an error.
|
||||
# TYPE coderd_agentapi_metadata_publish_errors_total counter
|
||||
coderd_agentapi_metadata_publish_errors_total 0
|
||||
# HELP coderd_license_warnings The number of active license warnings.
|
||||
# TYPE coderd_license_warnings gauge
|
||||
coderd_license_warnings 0
|
||||
# HELP coderd_license_errors The number of active license errors.
|
||||
# TYPE coderd_license_errors gauge
|
||||
coderd_license_errors 0
|
||||
# HELP coderd_provisioner_job_queue_wait_seconds Time from job creation to acquisition by a provisioner daemon.
|
||||
# TYPE coderd_provisioner_job_queue_wait_seconds histogram
|
||||
coderd_provisioner_job_queue_wait_seconds_bucket{build_reason="initiator",job_type="workspace_build",provisioner_type="terraform",transition="stop",le="300"} 1
|
||||
coderd_provisioner_job_queue_wait_seconds_bucket{build_reason="initiator",job_type="workspace_build",provisioner_type="terraform",transition="stop",le="+Inf"} 1
|
||||
coderd_provisioner_job_queue_wait_seconds_sum{build_reason="initiator",job_type="workspace_build",provisioner_type="terraform",transition="stop"} 0.01191
|
||||
coderd_provisioner_job_queue_wait_seconds_count{build_reason="initiator",job_type="workspace_build",provisioner_type="terraform",transition="stop"} 1
|
||||
# HELP coderd_workspace_builds_enqueued_total Total number of workspace build enqueue attempts.
|
||||
# TYPE coderd_workspace_builds_enqueued_total counter
|
||||
coderd_workspace_builds_enqueued_total{build_reason="dashboard",provisioner_type="terraform",status="success",transition="start"} 1
|
||||
coderd_workspace_builds_enqueued_total{build_reason="initiator",provisioner_type="terraform",status="success",transition="stop"} 1
|
||||
# HELP coder_aibridged_circuit_breaker_rejects_total Total number of requests rejected due to open circuit breaker.
|
||||
# TYPE coder_aibridged_circuit_breaker_rejects_total counter
|
||||
coder_aibridged_circuit_breaker_rejects_total{provider="",endpoint="",model=""} 0
|
||||
# HELP coder_aibridged_circuit_breaker_state Current state of the circuit breaker (0=closed, 0.5=half-open, 1=open).
|
||||
# TYPE coder_aibridged_circuit_breaker_state gauge
|
||||
coder_aibridged_circuit_breaker_state{provider="",endpoint="",model=""} 0
|
||||
# HELP coder_aibridged_circuit_breaker_trips_total Total number of times the circuit breaker transitioned to open state.
|
||||
# TYPE coder_aibridged_circuit_breaker_trips_total counter
|
||||
coder_aibridged_circuit_breaker_trips_total{provider="",endpoint="",model=""} 0
|
||||
# HELP coder_aibridged_passthrough_total The count of requests which were not intercepted but passed through to the upstream.
|
||||
# TYPE coder_aibridged_passthrough_total counter
|
||||
coder_aibridged_passthrough_total{provider="",route="",method=""} 0
|
||||
# HELP coder_aibridgeproxyd_connect_sessions_total Total number of CONNECT sessions established.
|
||||
# TYPE coder_aibridgeproxyd_connect_sessions_total counter
|
||||
coder_aibridgeproxyd_connect_sessions_total{type=""} 0
|
||||
# HELP coder_aibridgeproxyd_inflight_mitm_requests Number of MITM requests currently being processed.
|
||||
# TYPE coder_aibridgeproxyd_inflight_mitm_requests gauge
|
||||
coder_aibridgeproxyd_inflight_mitm_requests{provider=""} 0
|
||||
# HELP coder_aibridgeproxyd_mitm_requests_total Total number of MITM requests handled by the proxy.
|
||||
# TYPE coder_aibridgeproxyd_mitm_requests_total counter
|
||||
coder_aibridgeproxyd_mitm_requests_total{provider=""} 0
|
||||
# HELP coder_aibridgeproxyd_mitm_responses_total Total number of MITM responses by HTTP status code class.
|
||||
# TYPE coder_aibridgeproxyd_mitm_responses_total counter
|
||||
coder_aibridgeproxyd_mitm_responses_total{code="",provider=""} 0
|
||||
|
||||
@@ -32,6 +32,15 @@ var scanDirs = []string{
|
||||
"provisionerd",
|
||||
}
|
||||
|
||||
// skipPaths lists files that should be excluded from scanning. Their metrics
|
||||
// must be maintained in the static metrics file instead.
|
||||
// TODO(ssncferreira): Add support for resolving WrapRegistererWithPrefix to
|
||||
//
|
||||
// eliminate the need for this skip list.
|
||||
var skipPaths = []string{
|
||||
"enterprise/aibridgeproxyd/metrics.go",
|
||||
}
|
||||
|
||||
// MetricType represents the type of Prometheus metric.
|
||||
type MetricType string
|
||||
|
||||
@@ -132,6 +141,13 @@ func scanDirectory(root string) ([]Metric, error) {
|
||||
return nil
|
||||
}
|
||||
|
||||
// Skip files listed in skipPaths.
|
||||
for _, sp := range skipPaths {
|
||||
if path == sp {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
fileMetrics, err := scanFile(path)
|
||||
if err != nil {
|
||||
return xerrors.Errorf("scanning %s: %w", path, err)
|
||||
@@ -173,10 +189,11 @@ func scanFile(path string) ([]Metric, error) {
|
||||
|
||||
metric, ok := extractMetricFromCall(call, decls)
|
||||
if ok {
|
||||
// TODO(ssncferreira): Consider filtering out metrics with empty Help descriptions.
|
||||
// These indicate missing documentation in the source code.
|
||||
if metric.Help == "" {
|
||||
log.Printf("WARNING: metric %q has no HELP description, consider updating the source code", metric.Name)
|
||||
log.Printf("WARNING: metric %q has no HELP description, skipping", metric.Name)
|
||||
// Skip metrics without descriptions, they should be fixed in the source code
|
||||
// or added to the static metrics file with a manual description.
|
||||
return true
|
||||
}
|
||||
metrics = append(metrics, metric)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user