{
  "repo": "tidbcloud/VictoriaMetrics",
  "binary": "vmselect",
  "binary_path": "app/vmselect/main.go",
  "services": [
    {
      "name": "VMSelectLifecycle",
      "package": "main",
      "methods": [
        {
          "name": "InitializeNetstorage",
          "input": "storageNode list + dedup.minScrapeInterval + search.maxConcurrentRequests",
          "output": "active vmstorage connection pool and dial limiter",
          "type": "local",
          "name_key": "Runtime VMSelectLifecycle.InitializeNetstorage"
        },
        {
          "name": "InitializeTmpBlocksDir",
          "input": "cacheDataPath",
          "output": "temporary search-results directory",
          "type": "local",
          "name_key": "Runtime VMSelectLifecycle.InitializeTmpBlocksDir"
        },
        {
          "name": "InitializeRollupResultCache",
          "input": "cacheDataPath/rollupResult",
          "output": "optional persisted rollup-result cache",
          "type": "local",
          "name_key": "Runtime VMSelectLifecycle.InitializeRollupResultCache"
        },
        {
          "name": "InitializeConcurrencyLimiter",
          "input": "search.maxConcurrentRequests",
          "output": "query concurrency semaphore",
          "type": "local",
          "name_key": "Runtime VMSelectLifecycle.InitializeConcurrencyLimiter"
        },
        {
          "name": "InitializeVMAlertProxy",
          "input": "vmalert.proxyURL",
          "output": "optional reverse proxy to vmalert",
          "type": "local",
          "name_key": "Runtime VMSelectLifecycle.InitializeVMAlertProxy"
        },
        {
          "name": "StartClusterNativeServer",
          "input": "clusternativeListenAddr",
          "output": "optional vmselect-to-vmselect RPC listener",
          "type": "local",
          "name_key": "Runtime VMSelectLifecycle.StartClusterNativeServer"
        },
        {
          "name": "StartHTTPServer",
          "input": "httpListenAddr + httpListenAddr.useProxyProtocol",
          "output": "main HTTP listeners serving builtin, global, admin, and tenant query surfaces",
          "type": "local",
          "name_key": "Runtime VMSelectLifecycle.StartHTTPServer"
        },
        {
          "name": "InitializePushMetrics",
          "input": "pushmetrics flags",
          "output": "optional pushmetrics loop",
          "type": "local",
          "name_key": "Runtime VMSelectLifecycle.InitializePushMetrics"
        },
        {
          "name": "WaitForSigterm",
          "input": "SIGINT or SIGTERM",
          "output": "shutdown trigger",
          "type": "local",
          "name_key": "Runtime VMSelectLifecycle.WaitForSigterm"
        },
        {
          "name": "StopPushMetrics",
          "input": "shutdown signal",
          "output": "terminated pushmetrics loop",
          "type": "local",
          "name_key": "Runtime VMSelectLifecycle.StopPushMetrics"
        },
        {
          "name": "StopHTTPServer",
          "input": "httpListenAddr list",
          "output": "gracefully stopped HTTP listeners",
          "type": "local",
          "name_key": "Runtime VMSelectLifecycle.StopHTTPServer"
        },
        {
          "name": "StopClusterNativeServer",
          "input": "cluster-native server state",
          "output": "stopped vmselect-to-vmselect RPC listener",
          "type": "local",
          "name_key": "Runtime VMSelectLifecycle.StopClusterNativeServer"
        },
        {
          "name": "StopNetstorage",
          "input": "vmstorage connection pool",
          "output": "closed vmstorage query runtime",
          "type": "local",
          "name_key": "Runtime VMSelectLifecycle.StopNetstorage"
        },
        {
          "name": "StopRollupResultCache",
          "input": "cacheDataPath flag",
          "output": "flushed rollup-result cache",
          "type": "local",
          "name_key": "Runtime VMSelectLifecycle.StopRollupResultCache"
        },
        {
          "name": "StopDirRemover",
          "input": "temporary directory remover state",
          "output": "stopped async dir remover",
          "type": "local",
          "name_key": "Runtime VMSelectLifecycle.StopDirRemover"
        }
      ]
    },
    {
      "name": "VMSelectBuiltinHTTP",
      "type": "http",
      "methods": [
        {
          "name": "ANY /health",
          "input": "health probe",
          "output": "OK or delayed-shutdown status",
          "path": "/health",
          "type": "http",
          "name_key": "HTTP ANY /health"
        },
        {
          "name": "ANY /ping",
          "input": "optional verbose query arg",
          "output": "Influx-compatible ping response",
          "path": "/ping",
          "type": "http",
          "name_key": "HTTP ANY /ping"
        },
        {
          "name": "ANY /metrics",
          "input": "optional authKey query arg",
          "output": "Prometheus metrics",
          "path": "/metrics",
          "type": "http",
          "name_key": "HTTP ANY /metrics"
        },
        {
          "name": "ANY /flags",
          "input": "optional authKey query arg",
          "output": "effective process flags",
          "path": "/flags",
          "type": "http",
          "name_key": "HTTP ANY /flags"
        },
        {
          "name": "ANY /-/healthy",
          "input": "Prometheus compatibility probe",
          "output": "VictoriaMetrics is Healthy",
          "path": "/-/healthy",
          "type": "http",
          "name_key": "HTTP ANY /-/healthy"
        },
        {
          "name": "ANY /-/ready",
          "input": "Prometheus compatibility probe",
          "output": "VictoriaMetrics is Ready",
          "path": "/-/ready",
          "type": "http",
          "name_key": "HTTP ANY /-/ready"
        },
        {
          "name": "ANY /robots.txt",
          "input": "robots request",
          "output": "search-engine disallow response",
          "path": "/robots.txt",
          "type": "http",
          "name_key": "HTTP ANY /robots.txt"
        },
        {
          "name": "ANY /favicon.ico",
          "input": "favicon request",
          "output": "embedded favicon",
          "path": "/favicon.ico",
          "type": "http",
          "name_key": "HTTP ANY /favicon.ico"
        },
        {
          "name": "ANY /debug/pprof/*",
          "input": "pprof subpath + optional authKey query arg",
          "output": "pprof profile or debug page",
          "path": "/debug/pprof/*",
          "type": "http",
          "name_key": "HTTP ANY /debug/pprof/*"
        }
      ]
    },
    {
      "name": "VMSelectGlobalHTTP",
      "type": "http",
      "methods": [
        {
          "name": "GET /",
          "input": "none",
          "output": "vmselect info HTML",
          "path": "/",
          "type": "http",
          "name_key": "HTTP GET /"
        },
        {
          "name": "ANY /api/v1/status/top_queries",
          "input": "top query status request",
          "output": "global top queries JSON",
          "path": "/api/v1/status/top_queries",
          "type": "http",
          "name_key": "HTTP ANY /api/v1/status/top_queries"
        },
        {
          "name": "ANY /api/v1/status/active_queries",
          "input": "active query status request",
          "output": "global active queries JSON",
          "path": "/api/v1/status/active_queries",
          "type": "http",
          "name_key": "HTTP ANY /api/v1/status/active_queries"
        },
        {
          "name": "ANY /internal/resetRollupResultCache",
          "input": "optional authKey query arg",
          "output": "reset rollup-result cache",
          "path": "/internal/resetRollupResultCache",
          "type": "http",
          "name_key": "HTTP ANY /internal/resetRollupResultCache"
        },
        {
          "name": "ANY /admin/tenants",
          "input": "tenant listing request",
          "output": "tenant list JSON",
          "path": "/admin/tenants",
          "type": "http",
          "name_key": "HTTP ANY /admin/tenants"
        },
        {
          "name": "ANY /admin/api/v1/admin/status/metric_names_stats/reset",
          "input": "optional authKey query arg",
          "output": "reset metric-name usage stats",
          "path": "/admin/api/v1/admin/status/metric_names_stats/reset",
          "type": "http",
          "name_key": "HTTP ANY /admin/api/v1/admin/status/metric_names_stats/reset"
        }
      ]
    },
    {
      "name": "VMSelectTenantHTTP",
      "type": "http",
      "methods": [
        {
          "name": "GET /select/{tenant}/",
          "input": "tenant root request",
          "output": "tenant-scoped info HTML",
          "path": "/select/{tenant}/",
          "type": "http",
          "name_key": "HTTP GET /select/{tenant}/"
        },
        {
          "name": "ANY /select/{tenant}/static/*",
          "input": "tenant-scoped static asset request",
          "output": "embedded static asset",
          "path": "/select/{tenant}/static/*",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/static/*"
        },
        {
          "name": "ANY /select/{tenant}/prometheus/static/*",
          "input": "Prometheus-style static asset request",
          "output": "embedded static asset",
          "path": "/select/{tenant}/prometheus/static/*",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/prometheus/static/*"
        },
        {
          "name": "ANY /select/{tenant}/vmui",
          "input": "VMUI root request",
          "output": "redirect to tenant VMUI path with trailing slash",
          "path": "/select/{tenant}/vmui",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/vmui"
        },
        {
          "name": "ANY /select/{tenant}/graph",
          "input": "Grafana-compatible graph UI request",
          "output": "rewritten request to tenant VMUI assets",
          "path": "/select/{tenant}/graph",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/graph"
        },
        {
          "name": "ANY /select/{tenant}/vmui/custom-dashboards",
          "input": "VMUI custom dashboards request",
          "output": "custom dashboard metadata",
          "path": "/select/{tenant}/vmui/custom-dashboards",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/vmui/custom-dashboards"
        },
        {
          "name": "ANY /select/{tenant}/vmui/timezone",
          "input": "VMUI timezone request",
          "output": "resolved timezone JSON",
          "path": "/select/{tenant}/vmui/timezone",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/vmui/timezone"
        },
        {
          "name": "ANY /select/{tenant}/vmui/*",
          "input": "tenant VMUI asset or page request",
          "output": "embedded VMUI asset or HTML",
          "path": "/select/{tenant}/vmui/*",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/vmui/*"
        },
        {
          "name": "ANY /select/{tenant}/graphite/functions",
          "input": "Graphite function catalog request",
          "output": "Graphite function list JSON",
          "path": "/select/{tenant}/graphite/functions",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/graphite/functions"
        },
        {
          "name": "ANY /select/{tenant}/graphite/functions/{func_name}",
          "input": "Graphite function detail request",
          "output": "Graphite function detail JSON",
          "path": "/select/{tenant}/graphite/functions/{func_name}",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/graphite/functions/{func_name}"
        },
        {
          "name": "ANY /select/{tenant}/prometheus/vmalert",
          "input": "vmalert UI root request",
          "output": "redirect to tenant-scoped vmalert path with trailing slash",
          "path": "/select/{tenant}/prometheus/vmalert",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/prometheus/vmalert"
        },
        {
          "name": "ANY /select/{tenant}/prometheus/vmalert/*",
          "input": "tenant-scoped vmalert proxy request",
          "output": "proxied vmalert response or configuration error",
          "path": "/select/{tenant}/prometheus/vmalert/*",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/prometheus/vmalert/*"
        },
        {
          "name": "ANY /select/{tenant}/prometheus/api/v1/status/active_queries",
          "input": "tenant active query status request",
          "output": "tenant active queries JSON",
          "path": "/select/{tenant}/prometheus/api/v1/status/active_queries",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/prometheus/api/v1/status/active_queries"
        },
        {
          "name": "ANY /select/{tenant}/prometheus/api/v1/status/top_queries",
          "input": "tenant top query status request",
          "output": "tenant top queries JSON",
          "path": "/select/{tenant}/prometheus/api/v1/status/top_queries",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/prometheus/api/v1/status/top_queries"
        },
        {
          "name": "ANY /select/{tenant}/prometheus/metric-relabel-debug",
          "input": "metric + relabel_configs + optional format",
          "output": "metric relabel debug response",
          "path": "/select/{tenant}/prometheus/metric-relabel-debug",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/prometheus/metric-relabel-debug"
        },
        {
          "name": "ANY /select/{tenant}/prometheus/target-relabel-debug",
          "input": "metric + relabel_configs + optional format",
          "output": "target relabel debug response",
          "path": "/select/{tenant}/prometheus/target-relabel-debug",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/prometheus/target-relabel-debug"
        },
        {
          "name": "ANY /select/{tenant}/prometheus/expand-with-exprs",
          "input": "query + optional format",
          "output": "expanded WITH-expression response",
          "path": "/select/{tenant}/prometheus/expand-with-exprs",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/prometheus/expand-with-exprs"
        },
        {
          "name": "ANY /select/{tenant}/prometheus/prettify-query",
          "input": "query",
          "output": "formatted MetricsQL query",
          "path": "/select/{tenant}/prometheus/prettify-query",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/prometheus/prettify-query"
        },
        {
          "name": "ANY /select/{tenant}/prometheus/api/v1/rules",
          "input": "tenant rules request; alias /select/{tenant}/prometheus/rules",
          "output": "proxied vmalert rules or placeholder JSON",
          "path": "/select/{tenant}/prometheus/api/v1/rules",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/prometheus/api/v1/rules"
        },
        {
          "name": "ANY /select/{tenant}/prometheus/api/v1/alerts",
          "input": "tenant alerts request; alias /select/{tenant}/prometheus/alerts",
          "output": "proxied vmalert alerts or placeholder JSON",
          "path": "/select/{tenant}/prometheus/api/v1/alerts",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/prometheus/api/v1/alerts"
        },
        {
          "name": "ANY /select/{tenant}/prometheus/api/v1/notifiers",
          "input": "tenant notifiers request; alias /select/{tenant}/prometheus/notifiers",
          "output": "proxied vmalert notifiers or placeholder JSON",
          "path": "/select/{tenant}/prometheus/api/v1/notifiers",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/prometheus/api/v1/notifiers"
        },
        {
          "name": "ANY /select/{tenant}/prometheus/api/v1/metadata",
          "input": "metric metadata request",
          "output": "placeholder metadata JSON",
          "path": "/select/{tenant}/prometheus/api/v1/metadata",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/prometheus/api/v1/metadata"
        },
        {
          "name": "ANY /select/{tenant}/prometheus/api/v1/status/buildinfo",
          "input": "Prometheus buildinfo request",
          "output": "static buildinfo JSON",
          "path": "/select/{tenant}/prometheus/api/v1/status/buildinfo",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/prometheus/api/v1/status/buildinfo"
        },
        {
          "name": "ANY /select/{tenant}/prometheus/api/v1/query_exemplars",
          "input": "query exemplars request",
          "output": "placeholder exemplars JSON",
          "path": "/select/{tenant}/prometheus/api/v1/query_exemplars",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/prometheus/api/v1/query_exemplars"
        },
        {
          "name": "ANY /select/{tenant}/prometheus/api/v1/label/{label_name}/values",
          "input": "label values query request",
          "output": "Prometheus label values JSON",
          "path": "/select/{tenant}/prometheus/api/v1/label/{label_name}/values",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/prometheus/api/v1/label/{label_name}/values"
        },
        {
          "name": "ANY /select/{tenant}/prometheus/api/v1/query",
          "input": "instant query request",
          "output": "Prometheus instant-query JSON",
          "path": "/select/{tenant}/prometheus/api/v1/query",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/prometheus/api/v1/query"
        },
        {
          "name": "ANY /select/{tenant}/prometheus/api/v1/query_range",
          "input": "range query request",
          "output": "Prometheus range-query JSON",
          "path": "/select/{tenant}/prometheus/api/v1/query_range",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/prometheus/api/v1/query_range"
        },
        {
          "name": "ANY /select/{tenant}/prometheus/api/v1/series",
          "input": "series lookup request",
          "output": "Prometheus series JSON",
          "path": "/select/{tenant}/prometheus/api/v1/series",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/prometheus/api/v1/series"
        },
        {
          "name": "ANY /select/{tenant}/prometheus/api/v1/series/count",
          "input": "series count request",
          "output": "series-count JSON",
          "path": "/select/{tenant}/prometheus/api/v1/series/count",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/prometheus/api/v1/series/count"
        },
        {
          "name": "ANY /select/{tenant}/prometheus/api/v1/labels",
          "input": "label names request",
          "output": "Prometheus labels JSON",
          "path": "/select/{tenant}/prometheus/api/v1/labels",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/prometheus/api/v1/labels"
        },
        {
          "name": "ANY /select/{tenant}/prometheus/api/v1/status/tsdb",
          "input": "TSDB status request",
          "output": "TSDB status JSON",
          "path": "/select/{tenant}/prometheus/api/v1/status/tsdb",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/prometheus/api/v1/status/tsdb"
        },
        {
          "name": "ANY /select/{tenant}/prometheus/api/v1/export",
          "input": "export request",
          "output": "Prometheus export response",
          "path": "/select/{tenant}/prometheus/api/v1/export",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/prometheus/api/v1/export"
        },
        {
          "name": "ANY /select/{tenant}/prometheus/api/v1/export/csv",
          "input": "CSV export request",
          "output": "CSV export response",
          "path": "/select/{tenant}/prometheus/api/v1/export/csv",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/prometheus/api/v1/export/csv"
        },
        {
          "name": "ANY /select/{tenant}/prometheus/api/v1/export/native",
          "input": "native export request",
          "output": "native export response",
          "path": "/select/{tenant}/prometheus/api/v1/export/native",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/prometheus/api/v1/export/native"
        },
        {
          "name": "ANY /select/{tenant}/prometheus/federate",
          "input": "federate request",
          "output": "federated metrics response",
          "path": "/select/{tenant}/prometheus/federate",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/prometheus/federate"
        },
        {
          "name": "ANY /select/{tenant}/prometheus/-/healthy",
          "input": "Prometheus compatibility probe",
          "output": "VictoriaMetrics is Healthy",
          "path": "/select/{tenant}/prometheus/-/healthy",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/prometheus/-/healthy"
        },
        {
          "name": "ANY /select/{tenant}/prometheus/-/ready",
          "input": "Prometheus compatibility probe",
          "output": "VictoriaMetrics is Ready",
          "path": "/select/{tenant}/prometheus/-/ready",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/prometheus/-/ready"
        },
        {
          "name": "ANY /select/{tenant}/graphite/metrics/find",
          "input": "Graphite metrics-find request",
          "output": "Graphite metrics-find JSON",
          "path": "/select/{tenant}/graphite/metrics/find",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/graphite/metrics/find"
        },
        {
          "name": "ANY /select/{tenant}/graphite/metrics/expand",
          "input": "Graphite metrics-expand request",
          "output": "Graphite metrics-expand JSON",
          "path": "/select/{tenant}/graphite/metrics/expand",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/graphite/metrics/expand"
        },
        {
          "name": "ANY /select/{tenant}/graphite/metrics/index.json",
          "input": "Graphite metrics-index request",
          "output": "Graphite metric-name list JSON",
          "path": "/select/{tenant}/graphite/metrics/index.json",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/graphite/metrics/index.json"
        },
        {
          "name": "ANY /select/{tenant}/graphite/tags/tagSeries",
          "input": "Graphite tag-series request",
          "output": "registered canonical path response",
          "path": "/select/{tenant}/graphite/tags/tagSeries",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/graphite/tags/tagSeries"
        },
        {
          "name": "ANY /select/{tenant}/graphite/tags/tagMultiSeries",
          "input": "Graphite tag-multi-series request",
          "output": "registered canonical path JSON",
          "path": "/select/{tenant}/graphite/tags/tagMultiSeries",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/graphite/tags/tagMultiSeries"
        },
        {
          "name": "ANY /select/{tenant}/graphite/tags",
          "input": "Graphite tags request",
          "output": "Graphite tag list JSON",
          "path": "/select/{tenant}/graphite/tags",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/graphite/tags"
        },
        {
          "name": "ANY /select/{tenant}/graphite/tags/{tag_name}",
          "input": "Graphite tag-values request",
          "output": "Graphite tag-values JSON",
          "path": "/select/{tenant}/graphite/tags/{tag_name}",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/graphite/tags/{tag_name}"
        },
        {
          "name": "ANY /select/{tenant}/graphite/tags/findSeries",
          "input": "Graphite tags find-series request",
          "output": "matching tagged series JSON",
          "path": "/select/{tenant}/graphite/tags/findSeries",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/graphite/tags/findSeries"
        },
        {
          "name": "ANY /select/{tenant}/graphite/tags/autoComplete/tags",
          "input": "Graphite tag autocomplete request",
          "output": "matching Graphite tags JSON",
          "path": "/select/{tenant}/graphite/tags/autoComplete/tags",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/graphite/tags/autoComplete/tags"
        },
        {
          "name": "ANY /select/{tenant}/graphite/tags/autoComplete/values",
          "input": "Graphite tag-value autocomplete request",
          "output": "matching Graphite tag values JSON",
          "path": "/select/{tenant}/graphite/tags/autoComplete/values",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/graphite/tags/autoComplete/values"
        },
        {
          "name": "ANY /select/{tenant}/graphite/tags/delSeries",
          "input": "Graphite delete-series request",
          "output": "boolean delete result",
          "path": "/select/{tenant}/graphite/tags/delSeries",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/graphite/tags/delSeries"
        },
        {
          "name": "ANY /select/{tenant}/graphite/render",
          "input": "Graphite render request",
          "output": "Graphite render JSON",
          "path": "/select/{tenant}/graphite/render",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/graphite/render"
        },
        {
          "name": "ANY /select/{tenant}/prometheus/api/v1/status/metric_names_stats",
          "input": "metric-name usage stats request",
          "output": "metric-name usage stats JSON",
          "path": "/select/{tenant}/prometheus/api/v1/status/metric_names_stats",
          "type": "http",
          "name_key": "HTTP ANY /select/{tenant}/prometheus/api/v1/status/metric_names_stats"
        },
        {
          "name": "ANY /delete/{tenant}/prometheus/api/v1/admin/tsdb/delete_series",
          "input": "delete-series request + optional authKey query arg",
          "output": "204 No Content on success",
          "path": "/delete/{tenant}/prometheus/api/v1/admin/tsdb/delete_series",
          "type": "http",
          "name_key": "HTTP ANY /delete/{tenant}/prometheus/api/v1/admin/tsdb/delete_series"
        }
      ]
    },
    {
      "name": "VMSelectClusterNativeRPC",
      "package": "lib/vmselectapi",
      "methods": [
        {
          "name": "search_v7",
          "input": "search query + timeout",
          "output": "streamed metric blocks",
          "type": "tcp",
          "name_key": "VMSelectClusterNativeRPC.search_v7"
        },
        {
          "name": "searchMetricNames_v3",
          "input": "search query + timeout",
          "output": "metric names list",
          "type": "tcp",
          "name_key": "VMSelectClusterNativeRPC.searchMetricNames_v3"
        },
        {
          "name": "labelValues_v5",
          "input": "label name + search query + limit + timeout",
          "output": "label values list",
          "type": "tcp",
          "name_key": "VMSelectClusterNativeRPC.labelValues_v5"
        },
        {
          "name": "tagValueSuffixes_v4",
          "input": "tenant token + time range + tag key + prefix + delimiter + limit + timeout",
          "output": "matching tag value suffixes",
          "type": "tcp",
          "name_key": "VMSelectClusterNativeRPC.tagValueSuffixes_v4"
        },
        {
          "name": "labelNames_v5",
          "input": "search query + limit + timeout",
          "output": "label names list",
          "type": "tcp",
          "name_key": "VMSelectClusterNativeRPC.labelNames_v5"
        },
        {
          "name": "seriesCount_v4",
          "input": "tenant token + timeout",
          "output": "series count",
          "type": "tcp",
          "name_key": "VMSelectClusterNativeRPC.seriesCount_v4"
        },
        {
          "name": "tsdbStatus_v6",
          "input": "search query + focusLabel + topN + timeout",
          "output": "TSDB status",
          "type": "tcp",
          "name_key": "VMSelectClusterNativeRPC.tsdbStatus_v6"
        },
        {
          "name": "deleteSeries_v5",
          "input": "search query + timeout",
          "output": "deleted series count",
          "type": "tcp",
          "name_key": "VMSelectClusterNativeRPC.deleteSeries_v5"
        },
        {
          "name": "registerMetricNames_v3",
          "input": "metric rows + timeout",
          "output": "registration acknowledgement",
          "type": "tcp",
          "name_key": "VMSelectClusterNativeRPC.registerMetricNames_v3"
        },
        {
          "name": "tenants_v1",
          "input": "time range + timeout",
          "output": "tenant list",
          "type": "tcp",
          "name_key": "VMSelectClusterNativeRPC.tenants_v1"
        },
        {
          "name": "metricNamesUsageStats_v1",
          "input": "tenant token + limiters + match pattern + timeout",
          "output": "metric-name usage stats",
          "type": "tcp",
          "name_key": "VMSelectClusterNativeRPC.metricNamesUsageStats_v1"
        },
        {
          "name": "resetMetricNamesStats_v1",
          "input": "timeout",
          "output": "metric-name usage stats reset",
          "type": "tcp",
          "name_key": "VMSelectClusterNativeRPC.resetMetricNamesStats_v1"
        }
      ]
    }
  ],
  "surface_kind": "mixed_service",
  "extensions": {}
}
