Grafana Cloud

The Tenant HTTP API

The Grafana Fleet Management Tenant API allows you to retrieve information about your stack. Calls to the API can give you aggregated analytics about your stack or tell you what limits, if any, apply.

Find the base URL

You can find the base URL for the Tenant API in the Grafana Cloud Fleet Management interface.

  1. In your Grafana Cloud stack, click Connections > Collector > Fleet Management in the left-side menu.
  2. On the Fleet Management interface, switch to the API tab.
  3. Find the URL in the Base URL section. It looks like the following URL, where <CLUSTER_NAME> is the production cluster of your stack:
https://fleet-management-<CLUSTER_NAME>.grafana.net/tenant.v1.TenantService/

Note

If you need to secure your API traffic, you can configure a private endpoint in place of the base URL. You can find the service name for endpoint configuration and the private DNS name on the same API tab where the base URL is found. For more information, refer to the instructions for your cloud provider:

TenantService

TenantService is the service that provides information about the tenant.

Method NameRequest TypeResponse TypeDescription
GetLimitsGetLimitsRequestGetLimitsResponseReturns the limits applied to the stack
GetSummaryGetSummaryRequestGetSummaryResponseReturns aggregated analytics of the stack

Endpoints

Note

Protobuf field names are defined in snake_case. Due to default protojson behavior, field names are converted to camelCase in responses. Both snake_case and camelCase field names are accepted in requests.

GetLimitsRequest

GetLimitsRequest is a request to retrieve the collector, pipeline, and requests per second (RPS) limits for a stack.

GetLimitsResponse

GetLimitsResponse is the response to a GetLimitsRequest. It contains all limits applied to the stack. If a limit field is omitted in the response, that limit does not apply to the stack. For example, if the response does not contain the collectors field, the stack does not have a limit on the number of collectors.

FieldTypeLabelDescription
collectorsintegerThe limit on the number of collectors for the tenant
pipelinesintegerThe limit on the number of configuration pipelines for the tenant
requests_per_secondRequestLimitsThe request limits for the tenant

RequestLimits

FieldTypeLabelDescription
collectorintegerThe limit on the number of requests per second for collectors
apiintegerThe limit on the number of requests per second for the API and UI

GetSummaryRequest

The GetSummaryRequest is a request to retrieve collector and pipeline analytics for the stack.

GetSummaryResponse

The GetSummaryResponse contains summarized analytics for collectors and pipelines, as well as the health status of your fleet.

FieldTypeLabelDescription
collectorsCollectorSummarySummary analytics about all collectors in the stack
pipelinesPipelineSummarySummary analytics about all configuration pipelines in the stack
limitsLimitsSummarySummary analytics about collector and pipeline limits for the stack

CollectorSummary

CollectorSummary aggregates collectors by several characteristics. If no collectors are registered, the response returns an empty collectors object and all other fields are omitted. For all other fields, the field is omitted from the response if no collectors match.

FieldTypeLabelDescription
totalintegerrequiredTotal number of collectors in the stack
health_statusmap(string, int)requiredNumber of collectors by health status: healthy, warning, error, offline, 0 if none apply
by_typemap(string, int)optionalNumber of collectors by type: ALLOY or OTEL
by_versionmap(string, int)optionalNumber of collectors by collector version
by_osmap(string, int)optionalNumber of collectors by operating system

PipelineSummary

PipelineSummary aggregates configuration pipelines in total and by external sync source. If no pipelines exist, the response returns an empty pipelines object and all other fields are omitted.

FieldTypeLabelDescription
totalintegerrequiredTotal number of configuration pipelines in the stack
by_sync_sourcemap(string, int)optionalNumber of configuration pipelines for each source: GIT, TERRAFORM, UNSPECIFIED

LimitsSummary

LimitsSummary provides the current total and stack limit for collectors and configuration pipelines. The current count of collectors includes active collectors only.

FieldTypeLabelDescription
collectorsLimitsCurrent total and maximum limit for active collectors
pipelinesLimitsCurrent total and maximum limit for pipelines

Limits

FieldTypeLabelDescription
currentintegerThe current count of active collectors or total pipelines
maxintegerThe maximum allowed count, or -1 if unlimited

Examples

The following request retrieves limits for the authorized stack. The Basic Auth username and password are set as environment variables.

shell
curl -s \
  -u "$GCLOUD_INSTANCE_ID:$GCLOUD_FM_API_TOKEN" \
  -H "Content-Type: application/json" \
  -X POST \
  -d '{}' \
  https://fleet-management-prod-001.grafana.net/tenant.v1.TenantService/GetLimits \
  | jq

This is the response showing all limits:

JSON
{
  "pipelines": 200,
  "collectors": 2000,
  "requestsPerSecond": {
    "collector": 20,
    "api": 3
  }
}

The following request retrieves aggregated analytics for collectors and pipelines in the authorized stack. The Basic Auth username and password are set as environment variables.

shell
curl -s \
  -u "$GCLOUD_INSTANCE_ID:$GCLOUD_FM_API_TOKEN" \
  -H "Content-Type: application/json" \
  -X POST \
  -d '{}' \
  https://fleet-management-prod-001.grafana.net/tenant.v1.TenantService/GetSummary \
  | jq

This is the response showing collector and pipeline analytics:

JSON
{
  "collectors": {
    "total": 2000,
    "healthStatus": {
      "healthy": 1800,
      "warning": 100,
      "error": 50,
      "offline": 50
    },
    "byType": {
      "ALLOY": 1900,
      "OTEL": 100
    },
    "byVersion": {
      "v0.142.0": 100,
      "v1.11.3": 1200,
      "v1.12.0": 700
    },
    "byOs": {
      "linux": 1500,
      "darwin": 300,
      "windows": 200
    }
  },
  "pipelines": {
    "total": 180,
    "bySyncSource": {
      "GIT": 130,
      "TERRAFORM": 20
      "UNSPECIFIED": 30
    }
  },
  "limits": {
    "collectors": {
      "current": 1950,
      "max": 2000
    },
    "pipelines": {
      "current": 180,
      "max": 200
    }
  }
}