Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
332 changes: 332 additions & 0 deletions app/_data/ai-gateway/v2/otel-metrics.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,332 @@
metrics:
- name: gen_ai.client.operation.duration
min_version: ""
description: Total time Kong spends processing a Gen AI operation, such as an LLM request. Requires `enable_request_metrics` to populate the `error.type` attribute.
unit: "s"
type: Histogram
attributes:
- gen_ai.provider.name
- gen_ai.request.model
- gen_ai.response.model
- gen_ai.operation.name
- kong.workspace.name
- kong.auth.consumer.name
- kong.gen_ai.request.mode
- error.type
- name: gen_ai.server.request.duration
min_version: ""
description: Time the LLM provider spends processing the request. Requires `enable_latency_metrics` set to `true`. Requires `enable_request_metrics` to populate the `error.type` attribute.
unit: "s"
type: Histogram
attributes:
- gen_ai.provider.name
- gen_ai.request.model
- gen_ai.response.model
- gen_ai.operation.name
- kong.workspace.name
- kong.auth.consumer.name
- kong.gen_ai.request.mode
- error.type
- name: gen_ai.client.token.usage
min_version: ""
description: Number of tokens consumed by the Gen AI operation.
unit: "{token}"
type: Sum
attributes:
- gen_ai.provider.name
- gen_ai.request.model
- gen_ai.response.model
- gen_ai.token.type
- gen_ai.operation.name
- kong.workspace.name
- kong.auth.consumer.name
- kong.gen_ai.request.mode
- name: gen_ai.server.time_to_first_token
min_version: ""
description: Time from when the model server receives the request until the first output token is generated.
unit: "s"
type: Histogram
attributes:
- gen_ai.provider.name
- gen_ai.request.model
- gen_ai.response.model
- gen_ai.operation.name
- kong.workspace.name
- kong.auth.consumer.name
- kong.gen_ai.request.mode
- name: gen_ai.server.time_per_output_token
min_version: ""
description: Time between successive output tokens generated by the model server after the first token.
unit: "s"
type: Histogram
attributes:
- gen_ai.provider.name
- gen_ai.request.model
- gen_ai.response.model
- gen_ai.operation.name
- kong.workspace.name
- kong.auth.consumer.name
- kong.gen_ai.request.mode
- name: kong.gen_ai.llm.cost
min_version: ""
description: Cost of AI requests.
unit: "{cost}"
type: Sum
attributes:
- gen_ai.provider.name
- gen_ai.request.model
- gen_ai.response.model
- gen_ai.operation.name
- kong.gen_ai.cache.status
- kong.gen_ai.vector_db
- kong.gen_ai.embeddings.provider
- kong.gen_ai.embeddings.model
- kong.workspace.name
- kong.auth.consumer.name
- kong.gen_ai.request.mode
- name: kong.gen_ai.cache.fetch.latency
min_version: ""
description: Time to fetch a response from the semantic cache.
unit: "s"
type: Histogram
attributes:
- gen_ai.provider.name
- gen_ai.request.model
- gen_ai.response.model
- gen_ai.operation.name
- kong.gen_ai.cache.status
- kong.gen_ai.vector_db
- kong.gen_ai.embeddings.provider
- kong.gen_ai.embeddings.model
- kong.workspace.name
- kong.auth.consumer.name
- kong.gen_ai.request.mode
- name: kong.gen_ai.cache.embeddings.latency
min_version: ""
description: Time to generate embeddings during cache operations.
unit: "s"
type: Histogram
attributes:
- gen_ai.provider.name
- gen_ai.request.model
- gen_ai.response.model
- gen_ai.operation.name
- kong.gen_ai.cache.status
- kong.gen_ai.vector_db
- kong.gen_ai.embeddings.provider
- kong.gen_ai.embeddings.model
- kong.workspace.name
- kong.auth.consumer.name
- kong.gen_ai.request.mode
- name: kong.gen_ai.rag.fetch.latency
min_version: ""
description: Time to fetch data from a RAG source.
unit: "s"
type: Histogram
attributes:
- gen_ai.provider.name
- gen_ai.request.model
- gen_ai.response.model
- gen_ai.operation.name
- kong.gen_ai.cache.status
- kong.gen_ai.vector_db
- kong.gen_ai.embeddings.provider
- kong.gen_ai.embeddings.model
- kong.workspace.name
- kong.auth.consumer.name
- kong.gen_ai.request.mode
- name: kong.gen_ai.rag.embeddings.latency
min_version: ""
description: Time to generate embeddings for RAG operations.
unit: "s"
type: Histogram
attributes:
- gen_ai.provider.name
- gen_ai.request.model
- gen_ai.response.model
- gen_ai.operation.name
- kong.gen_ai.cache.status
- kong.gen_ai.vector_db
- kong.gen_ai.embeddings.provider
- kong.gen_ai.embeddings.model
- kong.workspace.name
- kong.auth.consumer.name
- kong.gen_ai.request.mode
- name: kong.gen_ai.aws.guardrails.latency
min_version: ""
description: Time for AWS Guardrails to process a request.
unit: "s"
type: Histogram
attributes:
- kong.gen_ai.aws.guardrails.id
- kong.gen_ai.aws.guardrails.version
- kong.gen_ai.aws.guardrails.mode
- kong.gen_ai.aws.guardrails.region
- kong.workspace.name
- kong.auth.consumer.name
- name: kong.gen_ai.mcp.response.size
min_version: ""
description: Size of the MCP response body in bytes.
unit: "By"
type: Histogram
attributes:
- kong.service.name
- kong.route.name
- kong.workspace.name
- mcp.method.name
- gen_ai.tool.name
- name: kong.gen_ai.mcp.request.error.count
min_version: ""
description: Number of MCP request errors.
unit: "{error}"
type: Sum
attributes:
- kong.service.name
- kong.route.name
- kong.workspace.name
- mcp.method.name
- gen_ai.tool.name
- error.type
- name: mcp.client.operation.duration
min_version: ""
description: Duration of the MCP request as observed by the sender. Only available when the MCP entity is in passthrough-listener mode. Requires `enable_latency_metrics` set to `true`.
unit: "s"
type: Histogram
attributes:
- kong.service.name
- kong.route.name
- kong.workspace.name
- mcp.method.name
- gen_ai.tool.name
- error.type
- gen_ai.operation.name
- name: mcp.server.operation.duration
min_version: ""
description: Duration of the MCP request as observed by the receiver.
unit: "s"
type: Histogram
attributes:
- kong.service.name
- kong.route.name
- kong.workspace.name
- mcp.method.name
- gen_ai.tool.name
- error.type
- gen_ai.operation.name
- name: kong.gen_ai.mcp.acl.allowed
min_version: ""
description: Number of MCP requests allowed by ACL rules.
unit: "{request}"
type: Sum
attributes:
- kong.service.name
- kong.route.name
- kong.workspace.name
- kong.gen_ai.mcp.primitive
- kong.gen_ai.mcp.primitive_name
- name: kong.gen_ai.mcp.acl.denied
min_version: ""
description: Number of MCP requests denied by ACL rules.
unit: "{request}"
type: Sum
attributes:
- kong.service.name
- kong.route.name
- kong.workspace.name
- kong.gen_ai.mcp.primitive
- kong.gen_ai.mcp.primitive_name
- name: kong.gen_ai.a2a.request.count
min_version: ""
description: Total number of A2A requests.
unit: "{request}"
type: Sum
attributes:
- kong.service.name
- kong.route.name
- kong.workspace.name
- kong.gen_ai.a2a.method
- kong.gen_ai.a2a.binding
- name: kong.gen_ai.a2a.request.duration
min_version: ""
description: Duration of an A2A request in seconds.
unit: "s"
type: Histogram
attributes:
- kong.service.name
- kong.route.name
- kong.workspace.name
- kong.gen_ai.a2a.method
- kong.gen_ai.a2a.binding
- name: kong.gen_ai.a2a.response.size
min_version: ""
description: Size of the A2A response body in bytes.
unit: "By"
type: Histogram
attributes:
- kong.service.name
- kong.route.name
- kong.workspace.name
- kong.gen_ai.a2a.method
- kong.gen_ai.a2a.binding
- name: kong.gen_ai.a2a.ttfb
min_version: ""
description: Time to first byte for A2A streaming responses in seconds.
unit: "s"
type: Histogram
attributes:
- kong.service.name
- kong.route.name
- kong.workspace.name
- kong.gen_ai.a2a.method
- kong.gen_ai.a2a.binding
- name: kong.gen_ai.a2a.request.error.count
min_version: ""
description: Number of A2A request errors.
unit: "{error}"
type: Sum
attributes:
- kong.service.name
- kong.route.name
- kong.workspace.name
- kong.gen_ai.a2a.method
- kong.gen_ai.a2a.binding
- kong.gen_ai.a2a.error.type
- name: kong.gen_ai.a2a.task.state.count
min_version: ""
description: Number of A2A task state transitions.
unit: "{state}"
type: Sum
attributes:
- kong.service.name
- kong.route.name
- kong.workspace.name
- kong.gen_ai.a2a.task.state

attributes:
kong.service.name: Name of the Gateway Service.
kong.route.name: Name of the Route.
kong.auth.consumer.name: Name of the authenticated Consumer.
kong.workspace.name: Name of the Workspace.
error.type: Type of error that occurred.
gen_ai.provider.name: Name of the Gen AI provider.
gen_ai.request.model: Model name targeted by the request.
gen_ai.response.model: Model name reported by the provider in the response.
gen_ai.operation.name: "Operation requested, such as `chat` or `embeddings`."
gen_ai.token.type: "Token category: `input`, `output`, or `total`."
kong.gen_ai.request.mode: "Request mode: `oneshot`, `stream`, or `realtime`."
kong.gen_ai.cache.status: "Cache status: `hit` or empty if not cached."
kong.gen_ai.vector_db: "Vector database used for caching, such as `redis`."
kong.gen_ai.embeddings.provider: Embeddings provider used for caching.
kong.gen_ai.embeddings.model: Embeddings model used for caching.
kong.gen_ai.aws.guardrails.id: ID of the AWS Guardrails configuration.
kong.gen_ai.aws.guardrails.version: Version of the AWS Guardrails configuration.
kong.gen_ai.aws.guardrails.mode: Mode of the AWS Guardrails evaluation.
kong.gen_ai.aws.guardrails.region: AWS region of the Guardrails service.
mcp.method.name: "MCP method name, such as `tools/call`."
gen_ai.tool.name: Name of the MCP tool invoked.
kong.gen_ai.mcp.primitive: "MCP primitive type, such as `tool`."
kong.gen_ai.mcp.primitive_name: Name of the MCP primitive.
kong.gen_ai.a2a.method: A2A method name.
kong.gen_ai.a2a.binding: A2A binding type.
kong.gen_ai.a2a.error.type: Type of the A2A error.
kong.gen_ai.a2a.task.state: "Task state, such as `completed`, `failed`, or `in_progress`."
Loading
Loading