Istio · Schema

Istio Telemetry

A Telemetry resource configures the behavior of the Istio telemetry system, including metrics collection, access logging, and distributed tracing for workloads in the mesh.

CNCFKubernetesMicroservicesOpen-SourceService Mesh

Properties

Name Type Description
selector object Workload selector to apply telemetry configuration to specific workloads.
targetRefs array Target references to apply configuration to specific resources.
tracing array Tracing configures the tracing behavior for all selected workloads.
metrics array Metrics configures the metrics behavior for all selected workloads.
accessLogging array Access logging configures the access logging behavior for all selected workloads.
View JSON Schema on GitHub

JSON Schema

telemetry.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://github.com/api-evangelist/istio/blob/main/json-schema/telemetry.json",
  "title": "Istio Telemetry",
  "description": "A Telemetry resource configures the behavior of the Istio telemetry system, including metrics collection, access logging, and distributed tracing for workloads in the mesh.",
  "type": "object",
  "properties": {
    "selector": {
      "type": "object",
      "properties": {
        "matchLabels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "One or more labels that indicate a specific set of pods/VMs on which the configuration should be applied."
        }
      },
      "description": "Workload selector to apply telemetry configuration to specific workloads."
    },
    "targetRefs": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "group": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "description": "Target references to apply configuration to specific resources."
    },
    "tracing": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "providers": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "description": "Name of the tracing provider."
                }
              },
              "required": ["name"]
            },
            "description": "Tracing providers to use."
          },
          "randomSamplingPercentage": {
            "type": "number",
            "description": "Controls the rate at which traffic will be selected for tracing. Ranges from 0.0 to 100.0."
          },
          "disableSpanReporting": {
            "type": "boolean",
            "description": "Controls span reporting. If true, no spans will be reported for impacted workloads."
          },
          "customTags": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            },
            "description": "Custom tags to add to each span."
          },
          "match": {
            "type": "object",
            "properties": {
              "mode": {
                "type": "string",
                "enum": ["CLIENT_AND_SERVER", "CLIENT", "SERVER"],
                "description": "Specifies which mode of traffic to apply tracing configuration to."
              }
            }
          }
        }
      },
      "description": "Tracing configures the tracing behavior for all selected workloads."
    },
    "metrics": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "providers": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "description": "Name of the metrics provider."
                }
              },
              "required": ["name"]
            },
            "description": "Metrics providers to use."
          },
          "overrides": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "match": {
                  "type": "object",
                  "properties": {
                    "metric": {
                      "type": "string",
                      "enum": ["ALL_METRICS", "REQUEST_COUNT", "REQUEST_DURATION", "REQUEST_SIZE", "RESPONSE_SIZE", "TCP_OPENED_CONNECTIONS", "TCP_CLOSED_CONNECTIONS", "TCP_SENT_BYTES", "TCP_RECEIVED_BYTES", "GRPC_REQUEST_MESSAGES", "GRPC_RESPONSE_MESSAGES"],
                      "description": "The metric to match."
                    },
                    "mode": {
                      "type": "string",
                      "enum": ["CLIENT_AND_SERVER", "CLIENT", "SERVER"],
                      "description": "Controls which mode of traffic to match."
                    }
                  }
                },
                "disabled": {
                  "type": "boolean",
                  "description": "If true, the matched metric will be disabled."
                },
                "tagOverrides": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "object",
                    "properties": {
                      "operation": {
                        "type": "string",
                        "enum": ["UPSERT", "REMOVE"],
                        "description": "Operation to apply on the tag."
                      },
                      "value": {
                        "type": "string",
                        "description": "Value of the tag when operation is UPSERT."
                      }
                    }
                  },
                  "description": "Tag overrides for the matched metric."
                }
              }
            },
            "description": "Metric overrides for fine-grained control."
          },
          "reportingInterval": {
            "type": "string",
            "description": "Interval for metrics reporting."
          }
        }
      },
      "description": "Metrics configures the metrics behavior for all selected workloads."
    },
    "accessLogging": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "providers": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "description": "Name of the access logging provider."
                }
              },
              "required": ["name"]
            },
            "description": "Access logging providers to use."
          },
          "disabled": {
            "type": "boolean",
            "description": "Controls logging. If true, no access logs will be generated for impacted workloads."
          },
          "filter": {
            "type": "object",
            "properties": {
              "expression": {
                "type": "string",
                "description": "CEL expression for filtering access log entries."
              }
            },
            "description": "Filter for access log entries."
          },
          "match": {
            "type": "object",
            "properties": {
              "mode": {
                "type": "string",
                "enum": ["CLIENT_AND_SERVER", "CLIENT", "SERVER"],
                "description": "Controls which mode of traffic to match."
              }
            }
          }
        }
      },
      "description": "Access logging configures the access logging behavior for all selected workloads."
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/telemetry"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.