Created
May 5, 2025 05:18
-
-
Save smith/771f808c9ce728bd92481f8692247262 to your computer and use it in GitHub Desktop.
Semantic conventions data representations
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[ | |
{ | |
"id": "registry.android.deprecated", | |
"type": "attribute_group", | |
"display_name": "Deprecated Android Attributes", | |
"brief": "This document defines attributes that represents an occurrence of a lifecycle transition on the Android platform.\n", | |
"attributes": [ | |
"android.state" | |
] | |
}, | |
{ | |
"id": "registry.android", | |
"type": "attribute_group", | |
"display_name": "Android Attributes", | |
"brief": "The Android platform on which the Android application is running.\n", | |
"attributes": [ | |
"android.os.api_level", | |
"android.app.state" | |
] | |
}, | |
{ | |
"id": "resource.android", | |
"type": "resource", | |
"stability": "development", | |
"name": "android", | |
"brief": "The Android platform on which the Android application is running.\n", | |
"attributes": [ | |
"android.os.api_level" | |
] | |
}, | |
{ | |
"id": "registry.apache", | |
"type": "attribute_group", | |
"display_name": "Apache Attributes", | |
"brief": "This section defines attributes for Apache HTTPD.\n", | |
"attributes": [ | |
"server.host", | |
"server.port" | |
] | |
}, | |
{ | |
"id": "entity.apache.server", | |
"brief": "An Apache HTTPD server", | |
"type": "entity", | |
"stability": "development", | |
"name": "apache.server", | |
"attributes": [ | |
"server.address", | |
"server.port" | |
], | |
"relationships": [ | |
{ | |
"is_a": "server" | |
} | |
] | |
}, | |
{ | |
"id": "event.app.screen.click", | |
"stability": "development", | |
"type": "event", | |
"name": "app.screen.click", | |
"brief": "This event represents an instantaneous click on the screen of an application.\n", | |
"note": "The `app.screen.click` event can be used to indicate that a user has clicked or tapped on the screen portion of an application. Clicks outside of an application's active area SHOULD NOT generate this event. This event does not differentiate between touch/mouse down and touch/mouse up. Implementations SHOULD give preference to generating this event at the time the click is complete, typically on touch release or mouse up. The location of the click event MUST be provided in absolute screen pixels.\n", | |
"attributes": [ | |
"app.screen.coordinate.x", | |
"app.screen.coordinate.y" | |
] | |
}, | |
{ | |
"id": "event.app.widget.click", | |
"stability": "development", | |
"type": "event", | |
"name": "app.widget.click", | |
"brief": "This event indicates that an application widget has been clicked.\n", | |
"note": "Use this event to indicate that visual application component has been clicked, typically through a user's manual interaction.\n", | |
"attributes": [ | |
"app.widget.id", | |
"app.widget.name", | |
"app.screen.coordinate.x", | |
"app.screen.coordinate.y" | |
] | |
}, | |
{ | |
"id": "registry.app", | |
"type": "attribute_group", | |
"display_name": "Application Attributes", | |
"brief": "Describes attributes related to client-side applications (e.g. web apps or mobile apps).\n", | |
"stability": "development", | |
"attributes": [ | |
"app.installation.id", | |
"app.screen.coordinate.x", | |
"app.screen.coordinate.y", | |
"app.widget.id", | |
"app.widget.name" | |
] | |
}, | |
{ | |
"id": "resource.app", | |
"type": "resource", | |
"stability": "development", | |
"name": "app", | |
"brief": "An app used directly by end users — like mobile, web, or desktop.\n", | |
"attributes": [ | |
"app.installation.id" | |
] | |
}, | |
{ | |
"id": "registry.artifact", | |
"type": "attribute_group", | |
"display_name": "Artifact Attributes", | |
"brief": "This group describes attributes specific to artifacts. Artifacts are files or other immutable objects that are intended for distribution. This definition aligns directly with the [SLSA](https://slsa.dev/spec/v1.0/terminology#package-model) package model.\n", | |
"attributes": [ | |
"artifact.filename", | |
"artifact.version", | |
"artifact.purl", | |
"artifact.hash", | |
"artifact.attestation.id", | |
"artifact.attestation.filename", | |
"artifact.attestation.hash" | |
] | |
}, | |
{ | |
"id": "aspnetcore.common.rate_limiting.metrics.attributes", | |
"type": "attribute_group", | |
"brief": "Common ASP.NET Core rate-limiting metrics attributes", | |
"attributes": [ | |
"aspnetcore.rate_limiting.policy" | |
] | |
}, | |
{ | |
"id": "metric.aspnetcore.routing.match_attempts", | |
"type": "metric", | |
"metric_name": "aspnetcore.routing.match_attempts", | |
"stability": "stable", | |
"brief": "Number of requests that were attempted to be matched to an endpoint.", | |
"instrument": "counter", | |
"unit": "{match_attempt}", | |
"note": "Meter name: `Microsoft.AspNetCore.Routing`; Added in: ASP.NET Core 8.0\n", | |
"attributes": [ | |
"http.route", | |
"aspnetcore.routing.is_fallback", | |
"aspnetcore.routing.match_status" | |
] | |
}, | |
{ | |
"id": "metric.aspnetcore.diagnostics.exceptions", | |
"type": "metric", | |
"metric_name": "aspnetcore.diagnostics.exceptions", | |
"stability": "stable", | |
"brief": "Number of exceptions caught by exception handling middleware.", | |
"instrument": "counter", | |
"unit": "{exception}", | |
"note": "Meter name: `Microsoft.AspNetCore.Diagnostics`; Added in: ASP.NET Core 8.0\n", | |
"attributes": [ | |
"error.type", | |
"aspnetcore.diagnostics.handler.type", | |
"aspnetcore.diagnostics.exception.result" | |
] | |
}, | |
{ | |
"id": "metric.aspnetcore.rate_limiting.active_request_leases", | |
"type": "metric", | |
"metric_name": "aspnetcore.rate_limiting.active_request_leases", | |
"stability": "stable", | |
"brief": "Number of requests that are currently active on the server that hold a rate limiting lease.", | |
"instrument": "updowncounter", | |
"unit": "{request}", | |
"note": "Meter name: `Microsoft.AspNetCore.RateLimiting`; Added in: ASP.NET Core 8.0\n", | |
"extends": "aspnetcore.common.rate_limiting.metrics.attributes" | |
}, | |
{ | |
"id": "metric.aspnetcore.rate_limiting.request_lease.duration", | |
"type": "metric", | |
"metric_name": "aspnetcore.rate_limiting.request_lease.duration", | |
"stability": "stable", | |
"brief": "The duration of rate limiting lease held by requests on the server.", | |
"instrument": "histogram", | |
"unit": "s", | |
"note": "Meter name: `Microsoft.AspNetCore.RateLimiting`; Added in: ASP.NET Core 8.0\n", | |
"extends": "aspnetcore.common.rate_limiting.metrics.attributes" | |
}, | |
{ | |
"id": "metric.aspnetcore.rate_limiting.request.time_in_queue", | |
"type": "metric", | |
"metric_name": "aspnetcore.rate_limiting.request.time_in_queue", | |
"stability": "stable", | |
"brief": "The time the request spent in a queue waiting to acquire a rate limiting lease.", | |
"instrument": "histogram", | |
"unit": "s", | |
"note": "Meter name: `Microsoft.AspNetCore.RateLimiting`; Added in: ASP.NET Core 8.0\n", | |
"extends": "aspnetcore.common.rate_limiting.metrics.attributes", | |
"attributes": [ | |
"aspnetcore.rate_limiting.result" | |
] | |
}, | |
{ | |
"id": "metric.aspnetcore.rate_limiting.queued_requests", | |
"type": "metric", | |
"metric_name": "aspnetcore.rate_limiting.queued_requests", | |
"stability": "stable", | |
"brief": "Number of requests that are currently queued, waiting to acquire a rate limiting lease.", | |
"instrument": "updowncounter", | |
"unit": "{request}", | |
"note": "Meter name: `Microsoft.AspNetCore.RateLimiting`; Added in: ASP.NET Core 8.0\n", | |
"extends": "aspnetcore.common.rate_limiting.metrics.attributes" | |
}, | |
{ | |
"id": "metric.aspnetcore.rate_limiting.requests", | |
"type": "metric", | |
"metric_name": "aspnetcore.rate_limiting.requests", | |
"stability": "stable", | |
"brief": "Number of requests that tried to acquire a rate limiting lease.", | |
"instrument": "counter", | |
"unit": "{request}", | |
"note": "Requests could be:\n\n* Rejected by global or endpoint rate limiting policies\n* Canceled while waiting for the lease.\n\nMeter name: `Microsoft.AspNetCore.RateLimiting`; Added in: ASP.NET Core 8.0\n", | |
"extends": "aspnetcore.common.rate_limiting.metrics.attributes", | |
"attributes": [ | |
"aspnetcore.rate_limiting.result" | |
] | |
}, | |
{ | |
"id": "registry.aspnetcore", | |
"type": "attribute_group", | |
"display_name": "ASP.NET Core Attributes", | |
"brief": "ASP.NET Core attributes", | |
"attributes": [ | |
"aspnetcore.rate_limiting.policy", | |
"aspnetcore.rate_limiting.result", | |
"aspnetcore.routing.is_fallback", | |
"aspnetcore.diagnostics.handler.type", | |
"aspnetcore.request.is_unhandled", | |
"aspnetcore.routing.match_status", | |
"aspnetcore.diagnostics.exception.result" | |
] | |
}, | |
{ | |
"id": "resource.aws.ecs", | |
"type": "resource", | |
"stability": "development", | |
"name": "aws.ecs", | |
"brief": "Resources used by AWS Elastic Container Service (ECS).\n", | |
"attributes": [ | |
"aws.ecs.container.arn", | |
"aws.ecs.cluster.arn", | |
"aws.ecs.launchtype", | |
"aws.ecs.task.arn", | |
"aws.ecs.task.family", | |
"aws.ecs.task.id", | |
"aws.ecs.task.revision" | |
] | |
}, | |
{ | |
"id": "resource.aws.eks", | |
"type": "resource", | |
"stability": "development", | |
"name": "aws.eks", | |
"brief": "Resources used by AWS Elastic Kubernetes Service (EKS).\n", | |
"attributes": [ | |
"aws.eks.cluster.arn" | |
] | |
}, | |
{ | |
"id": "span.aws.lambda.server", | |
"type": "span", | |
"span_kind": "server", | |
"stability": "development", | |
"brief": "This span represents AWS Lambda invocation.\n", | |
"note": "Consider setting other attributes of the [`faas` resource][faasres] and [trace][faas] conventions\nand the [cloud resource conventions][cloud].\n\n**Span name** MUST be set to the function name from the Lambda `Context`\nunless stated otherwise.\n\n**Span kind** MUST be set to `SERVER` unless stated otherwise.\n", | |
"attributes": [ | |
"aws.lambda.invoked_arn" | |
] | |
}, | |
{ | |
"id": "resource.aws.log", | |
"type": "resource", | |
"stability": "development", | |
"name": "aws.log", | |
"brief": "Resources specific to Amazon Web Services.\n", | |
"attributes": [ | |
"aws.log.group.names", | |
"aws.log.group.arns", | |
"aws.log.stream.names", | |
"aws.log.stream.arns" | |
] | |
}, | |
{ | |
"id": "registry.aws", | |
"type": "attribute_group", | |
"display_name": "General AWS Attributes", | |
"brief": "This section defines generic attributes for AWS services.\n", | |
"attributes": [ | |
"aws.request_id", | |
"aws.extended_request_id" | |
] | |
}, | |
{ | |
"id": "registry.aws.dynamodb", | |
"type": "attribute_group", | |
"display_name": "Amazon DynamoDB Attributes", | |
"brief": "This document defines attributes for AWS DynamoDB.\n", | |
"attributes": [ | |
"aws.dynamodb.table_names", | |
"aws.dynamodb.consumed_capacity", | |
"aws.dynamodb.item_collection_metrics", | |
"aws.dynamodb.provisioned_read_capacity", | |
"aws.dynamodb.provisioned_write_capacity", | |
"aws.dynamodb.consistent_read", | |
"aws.dynamodb.projection", | |
"aws.dynamodb.limit", | |
"aws.dynamodb.attributes_to_get", | |
"aws.dynamodb.index_name", | |
"aws.dynamodb.select", | |
"aws.dynamodb.global_secondary_indexes", | |
"aws.dynamodb.local_secondary_indexes", | |
"aws.dynamodb.exclusive_start_table", | |
"aws.dynamodb.table_count", | |
"aws.dynamodb.scan_forward", | |
"aws.dynamodb.segment", | |
"aws.dynamodb.total_segments", | |
"aws.dynamodb.count", | |
"aws.dynamodb.scanned_count", | |
"aws.dynamodb.attribute_definitions", | |
"aws.dynamodb.global_secondary_index_updates" | |
] | |
}, | |
{ | |
"id": "registry.aws.ecs", | |
"type": "attribute_group", | |
"display_name": "Amazon ECS Attributes", | |
"brief": "This document defines attributes for AWS Elastic Container Service (ECS).\n", | |
"attributes": [ | |
"aws.ecs.container.arn", | |
"aws.ecs.cluster.arn", | |
"aws.ecs.launchtype", | |
"aws.ecs.task.arn", | |
"aws.ecs.task.family", | |
"aws.ecs.task.id", | |
"aws.ecs.task.revision" | |
] | |
}, | |
{ | |
"id": "registry.aws.eks", | |
"type": "attribute_group", | |
"display_name": "Amazon EKS Attributes", | |
"brief": "This document defines attributes for AWS Elastic Kubernetes Service (EKS).\n", | |
"attributes": [ | |
"aws.eks.cluster.arn" | |
] | |
}, | |
{ | |
"id": "registry.aws.log", | |
"type": "attribute_group", | |
"display_name": "Amazon Logs Attributes", | |
"brief": "This document defines attributes for AWS Logs.\n", | |
"attributes": [ | |
"aws.log.group.names", | |
"aws.log.group.arns", | |
"aws.log.stream.names", | |
"aws.log.stream.arns" | |
] | |
}, | |
{ | |
"id": "registry.aws.lambda", | |
"type": "attribute_group", | |
"display_name": "Amazon Lambda Attributes", | |
"brief": "This document defines attributes for AWS Lambda.\n", | |
"attributes": [ | |
"aws.lambda.invoked_arn" | |
] | |
}, | |
{ | |
"id": "registry.aws.s3", | |
"type": "attribute_group", | |
"display_name": "Amazon S3 Attributes", | |
"brief": "This document defines attributes for AWS S3.\n", | |
"attributes": [ | |
"aws.s3.bucket", | |
"aws.s3.key", | |
"aws.s3.copy_source", | |
"aws.s3.upload_id", | |
"aws.s3.delete", | |
"aws.s3.part_number" | |
] | |
}, | |
{ | |
"id": "span.aws.client", | |
"type": "span", | |
"stability": "development", | |
"span_kind": "client", | |
"brief": "This span describes an AWS SDK client call.\n", | |
"note": "**Span name** MUST be of the format `Service.Operation` as per the\nAWS HTTP API, e.g., `DynamoDB.GetItem`, `S3.ListBuckets`. This is\nequivalent to concatenating `rpc.service` and `rpc.method` with `.` and\nconsistent with the naming guidelines for RPC client spans.\n\nAWS SDK span attributes are based on the request or response parameters\nin AWS SDK API calls. The conventions have been collected over time based\non feedback from AWS users of tracing and will continue to increase as new\ninteresting conventions are found.\n", | |
"attributes": [ | |
"rpc.system", | |
"rpc.service", | |
"rpc.method", | |
"aws.request_id", | |
"aws.extended_request_id" | |
] | |
}, | |
{ | |
"id": "span.dynamodb.batchgetitem.client", | |
"brief": "This span represents a `DynamoDB.BatchGetItem` call.\n", | |
"note": "`db.system.name` MUST be set to `\"aws.dynamodb\"` and SHOULD be provided **at span creation time**.\n", | |
"extends": "span.aws.client", | |
"stability": "development", | |
"type": "span", | |
"span_kind": "client", | |
"attributes": [ | |
"aws.dynamodb.table_names", | |
"aws.dynamodb.consumed_capacity" | |
] | |
}, | |
{ | |
"id": "span.dynamodb.batchwriteitem.client", | |
"brief": "This span represents a `DynamoDB.BatchWriteItem` call.\n", | |
"note": "`db.system.name` MUST be set to `\"aws.dynamodb\"` and SHOULD be provided **at span creation time**.\n", | |
"extends": "span.aws.client", | |
"type": "span", | |
"stability": "development", | |
"span_kind": "client", | |
"attributes": [ | |
"aws.dynamodb.table_names", | |
"aws.dynamodb.consumed_capacity", | |
"aws.dynamodb.item_collection_metrics" | |
] | |
}, | |
{ | |
"id": "span.dynamodb.createtable.client", | |
"brief": "This span represents a `DynamoDB.CreateTable` call.\n", | |
"note": "`db.system.name` MUST be set to `\"aws.dynamodb\"` and SHOULD be provided **at span creation time**.\n", | |
"extends": "span.aws.client", | |
"type": "span", | |
"stability": "development", | |
"span_kind": "client", | |
"attributes": [ | |
"aws.dynamodb.global_secondary_indexes", | |
"aws.dynamodb.local_secondary_indexes", | |
"aws.dynamodb.table_names", | |
"aws.dynamodb.consumed_capacity", | |
"aws.dynamodb.item_collection_metrics", | |
"aws.dynamodb.provisioned_read_capacity", | |
"aws.dynamodb.provisioned_write_capacity" | |
] | |
}, | |
{ | |
"id": "span.dynamodb.deleteitem.client", | |
"brief": "This span represents a `DynamoDB.DeleteItem` call.\n", | |
"note": "`db.system.name` MUST be set to `\"aws.dynamodb\"` and SHOULD be provided **at span creation time**.\n", | |
"extends": "span.aws.client", | |
"type": "span", | |
"stability": "development", | |
"span_kind": "client", | |
"attributes": [ | |
"aws.dynamodb.table_names", | |
"aws.dynamodb.consumed_capacity", | |
"aws.dynamodb.item_collection_metrics" | |
] | |
}, | |
{ | |
"id": "span.dynamodb.deletetable.client", | |
"brief": "This span represents a `DynamoDB.DeleteTable` call.\n", | |
"note": "`db.system.name` MUST be set to `\"aws.dynamodb\"` and SHOULD be provided **at span creation time**.\n", | |
"extends": "span.aws.client", | |
"type": "span", | |
"stability": "development", | |
"span_kind": "client", | |
"attributes": [ | |
"aws.dynamodb.table_names" | |
] | |
}, | |
{ | |
"id": "span.dynamodb.describetable.client", | |
"brief": "This span represents a `DynamoDB.DescribeTable` call.\n", | |
"note": "`db.system.name` MUST be set to `\"aws.dynamodb\"` and SHOULD be provided **at span creation time**.\n", | |
"extends": "span.aws.client", | |
"type": "span", | |
"stability": "development", | |
"span_kind": "client", | |
"attributes": [ | |
"aws.dynamodb.table_names" | |
] | |
}, | |
{ | |
"id": "span.dynamodb.getitem.client", | |
"brief": "This span represents a `DynamoDB.GetItem` call.\n", | |
"note": "`db.system.name` MUST be set to `\"aws.dynamodb\"` and SHOULD be provided **at span creation time**.\n", | |
"extends": "span.aws.client", | |
"type": "span", | |
"stability": "development", | |
"span_kind": "client", | |
"attributes": [ | |
"aws.dynamodb.table_names", | |
"aws.dynamodb.consumed_capacity", | |
"aws.dynamodb.consistent_read", | |
"aws.dynamodb.projection" | |
] | |
}, | |
{ | |
"id": "span.dynamodb.listtables.client", | |
"brief": "This span represents a `DynamoDB.ListTables` call.\n", | |
"note": "`db.system.name` MUST be set to `\"aws.dynamodb\"` and SHOULD be provided **at span creation time**.\n", | |
"extends": "span.aws.client", | |
"type": "span", | |
"stability": "development", | |
"span_kind": "client", | |
"attributes": [ | |
"aws.dynamodb.exclusive_start_table", | |
"aws.dynamodb.table_count", | |
"aws.dynamodb.limit" | |
] | |
}, | |
{ | |
"id": "span.dynamodb.putitem.client", | |
"brief": "This span represents a `DynamoDB.PutItem` call.\n", | |
"note": "`db.system.name` MUST be set to `\"aws.dynamodb\"` and SHOULD be provided **at span creation time**.\n", | |
"extends": "span.aws.client", | |
"type": "span", | |
"stability": "development", | |
"span_kind": "client", | |
"attributes": [ | |
"aws.dynamodb.table_names", | |
"aws.dynamodb.consumed_capacity", | |
"aws.dynamodb.item_collection_metrics" | |
] | |
}, | |
{ | |
"id": "span.dynamodb.query.client", | |
"brief": "This span represents a `DynamoDB.Query` call.\n", | |
"note": "`db.system.name` MUST be set to `\"aws.dynamodb\"` and SHOULD be provided **at span creation time**.\n", | |
"extends": "span.aws.client", | |
"type": "span", | |
"stability": "development", | |
"span_kind": "client", | |
"attributes": [ | |
"aws.dynamodb.scan_forward", | |
"aws.dynamodb.table_names", | |
"aws.dynamodb.consumed_capacity", | |
"aws.dynamodb.consistent_read", | |
"aws.dynamodb.limit", | |
"aws.dynamodb.projection", | |
"aws.dynamodb.attributes_to_get", | |
"aws.dynamodb.index_name", | |
"aws.dynamodb.select" | |
] | |
}, | |
{ | |
"id": "span.dynamodb.scan.client", | |
"brief": "This span represents a `DynamoDB.Scan` call.\n", | |
"note": "`db.system.name` MUST be set to `\"aws.dynamodb\"` and SHOULD be provided **at span creation time**.\n", | |
"extends": "span.aws.client", | |
"type": "span", | |
"stability": "development", | |
"span_kind": "client", | |
"attributes": [ | |
"aws.dynamodb.segment", | |
"aws.dynamodb.total_segments", | |
"aws.dynamodb.count", | |
"aws.dynamodb.scanned_count", | |
"aws.dynamodb.table_names", | |
"aws.dynamodb.consumed_capacity", | |
"aws.dynamodb.consistent_read", | |
"aws.dynamodb.limit", | |
"aws.dynamodb.projection", | |
"aws.dynamodb.attributes_to_get", | |
"aws.dynamodb.index_name", | |
"aws.dynamodb.select" | |
] | |
}, | |
{ | |
"id": "span.dynamodb.updateitem.client", | |
"brief": "This span represents a `DynamoDB.UpdateItem` call.\n", | |
"note": "`db.system.name` MUST be set to `\"aws.dynamodb\"` and SHOULD be provided **at span creation time**.\n", | |
"extends": "span.aws.client", | |
"type": "span", | |
"span_kind": "client", | |
"stability": "development", | |
"attributes": [ | |
"aws.dynamodb.table_names", | |
"aws.dynamodb.consumed_capacity", | |
"aws.dynamodb.item_collection_metrics" | |
] | |
}, | |
{ | |
"id": "span.dynamodb.updatetable.client", | |
"brief": "This span represents a `DynamoDB.UpdateTable` call.\n", | |
"note": "`db.system.name` MUST be set to `\"aws.dynamodb\"` and SHOULD be provided **at span creation time**.\n", | |
"extends": "span.aws.client", | |
"type": "span", | |
"stability": "development", | |
"span_kind": "client", | |
"attributes": [ | |
"aws.dynamodb.attribute_definitions", | |
"aws.dynamodb.global_secondary_index_updates", | |
"aws.dynamodb.table_names", | |
"aws.dynamodb.consumed_capacity", | |
"aws.dynamodb.provisioned_read_capacity", | |
"aws.dynamodb.provisioned_write_capacity" | |
] | |
}, | |
{ | |
"id": "span.aws.s3.client", | |
"extends": "span.aws.client", | |
"type": "span", | |
"stability": "development", | |
"span_kind": "client", | |
"brief": "Semantic Conventions for AWS S3 client spans extend the general [AWS SDK Semantic Conventions](/docs/cloud-providers/aws-sdk.md)\n", | |
"attributes": [ | |
"aws.s3.bucket", | |
"aws.s3.key", | |
"aws.s3.copy_source", | |
"aws.s3.upload_id", | |
"aws.s3.delete", | |
"aws.s3.part_number" | |
] | |
}, | |
{ | |
"id": "metric.azure.cosmosdb.client.operation.request_charge", | |
"type": "metric", | |
"metric_name": "azure.cosmosdb.client.operation.request_charge", | |
"brief": "[Request units](https://learn.microsoft.com/azure/cosmos-db/request-units) consumed by the operation", | |
"instrument": "histogram", | |
"unit": "{request_unit}", | |
"stability": "development", | |
"extends": "attributes.azure.cosmosdb.minimal", | |
"attributes": [ | |
"azure.cosmosdb.operation.contacted_regions", | |
"db.collection.name" | |
] | |
}, | |
{ | |
"id": "metric.azure.cosmosdb.client.active_instance.count", | |
"type": "metric", | |
"metric_name": "azure.cosmosdb.client.active_instance.count", | |
"brief": "Number of active client instances", | |
"instrument": "updowncounter", | |
"unit": "{instance}", | |
"stability": "development", | |
"attributes": [ | |
"server.address", | |
"server.port" | |
] | |
}, | |
{ | |
"id": "event.az.resource.log", | |
"stability": "development", | |
"type": "event", | |
"name": "az.resource.log", | |
"brief": "Describes Azure Resource Log event, see [Azure Resource Log Top-level Schema](https://learn.microsoft.com/azure/azure-monitor/essentials/resource-logs-schema#top-level-common-schema) for more details.\n", | |
"attributes": [ | |
"az.service_request_id", | |
"cloud.resource_id" | |
], | |
"body": { | |
"id": "az.resource.log", | |
"requirement_level": "recommended", | |
"stability": "development", | |
"type": "map", | |
"fields": [ | |
{ | |
"id": "category", | |
"type": "string", | |
"stability": "development", | |
"brief": "The Azure category of the log entry.", | |
"requirement_level": "recommended", | |
"examples": [ | |
"AuditEvent", | |
"GatewayLogs", | |
"ApplicationGatewayAccessLog" | |
] | |
}, | |
{ | |
"id": "correlation.id", | |
"type": "string", | |
"requirement_level": "recommended", | |
"stability": "development", | |
"brief": "The correlation ID of the log entry.", | |
"examples": [ | |
"607964b6-41a5-4e24-a5db-db7aab3b9b34" | |
] | |
}, | |
{ | |
"id": "duration", | |
"type": "int", | |
"stability": "development", | |
"requirement_level": "recommended", | |
"brief": "The duration of the operations in milliseconds.", | |
"examples": [ | |
1000 | |
] | |
}, | |
{ | |
"id": "identity", | |
"type": "undefined", | |
"stability": "development", | |
"brief": "\"A JSON blob that describes the identity of the user or application that performed the operation.\"\n", | |
"note": "Typically, this field includes the authorization and claims or JWT token from Active Directory.\n\n> [!Warning]\n> This field contains sensitive (PII) information.\n", | |
"requirement_level": "opt_in" | |
}, | |
{ | |
"id": "operation.name", | |
"type": "string", | |
"stability": "development", | |
"requirement_level": "recommended", | |
"brief": "The name of the operation.", | |
"examples": [ | |
"SecretGet", | |
"Microsoft.ApiManagement/GatewayLogs", | |
"ApplicationGatewayAccess" | |
] | |
}, | |
{ | |
"id": "operation.version", | |
"type": "string", | |
"stability": "development", | |
"requirement_level": "recommended", | |
"brief": "The version of the operation.", | |
"examples": [ | |
"1.0" | |
] | |
}, | |
{ | |
"id": "properties", | |
"type": "undefined", | |
"requirement_level": "recommended", | |
"stability": "development", | |
"brief": "The properties provided in the Azure Resource Log." | |
}, | |
{ | |
"id": "result.type", | |
"type": "string", | |
"stability": "development", | |
"requirement_level": "recommended", | |
"brief": "The status associated with the logged event.", | |
"examples": [ | |
"Succeeded", | |
"Failed", | |
"Started" | |
] | |
}, | |
{ | |
"id": "result.signature", | |
"type": "string", | |
"stability": "development", | |
"requirement_level": "recommended", | |
"brief": "The substatus of associated with the logged event.", | |
"examples": [ | |
"OK" | |
] | |
}, | |
{ | |
"id": "result.description", | |
"type": "string", | |
"stability": "development", | |
"requirement_level": "recommended", | |
"brief": "The description of the result.", | |
"examples": [ | |
"The operation was successful", | |
"The operation failed" | |
] | |
}, | |
{ | |
"id": "tenant.id", | |
"type": "string", | |
"stability": "development", | |
"brief": "The tenant ID of the Active Directory tenant that this event is tied to.", | |
"requirement_level": { | |
"conditionally_required": "if the event is tied to an Active Directory tenant." | |
}, | |
"examples": [ | |
"00000000-0000-0000-0000-000000000000" | |
] | |
} | |
] | |
} | |
}, | |
{ | |
"id": "registry.azure.client.sdk", | |
"type": "attribute_group", | |
"display_name": "Azure Client Library Attributes", | |
"brief": "This section defines generic attributes used by Azure Client Libraries.\n", | |
"attributes": [ | |
"az.service_request_id", | |
"az.namespace", | |
"azure.client.id" | |
] | |
}, | |
{ | |
"id": "registry.azure.cosmosdb", | |
"type": "attribute_group", | |
"display_name": "Azure Cosmos DB Attributes", | |
"stability": "development", | |
"brief": "This section defines attributes for Azure Cosmos DB.\n", | |
"attributes": [ | |
"azure.cosmosdb.connection.mode", | |
"azure.cosmosdb.operation.request_charge", | |
"azure.cosmosdb.request.body.size", | |
"azure.cosmosdb.operation.contacted_regions", | |
"azure.cosmosdb.response.sub_status_code", | |
"azure.cosmosdb.consistency.level" | |
] | |
}, | |
{ | |
"id": "event.browser.web_vital", | |
"stability": "development", | |
"type": "event", | |
"name": "browser.web_vital", | |
"brief": "This event describes the website performance metrics introduced by Google, See [web vitals](https://web.dev/vitals).\n", | |
"body": { | |
"id": "browser.web_vital", | |
"requirement_level": "required", | |
"stability": "development", | |
"type": "map", | |
"fields": [ | |
{ | |
"id": "name", | |
"type": "enum", | |
"members": [ | |
{ | |
"id": "cls", | |
"value": "cls", | |
"brief": "Cumulative Layout Shift. See [cls](https://web.dev/articles/cls).", | |
"stability": "development" | |
}, | |
{ | |
"id": "lcp", | |
"value": "lcp", | |
"brief": "Largest Contentful Paint. See [lcp](https://web.dev/articles/lcp).", | |
"stability": "development" | |
}, | |
{ | |
"id": "fid", | |
"value": "fid", | |
"brief": "First Input Delay. See [fid](https://web.dev/articles/fid).", | |
"stability": "development" | |
}, | |
{ | |
"id": "inp", | |
"value": "inp", | |
"brief": "Interation to Next Paint. See [inp](https://web.dev/articles/inp).", | |
"stability": "development" | |
} | |
], | |
"stability": "development", | |
"brief": "Name of the web vital.", | |
"requirement_level": "required", | |
"examples": [ | |
"cls" | |
] | |
}, | |
{ | |
"id": "value", | |
"type": "double", | |
"stability": "development", | |
"brief": "Value of the web vital.", | |
"requirement_level": "required", | |
"examples": [ | |
1 | |
] | |
}, | |
{ | |
"id": "delta", | |
"type": "double", | |
"stability": "development", | |
"brief": "The delta between the current value and the last-reported value. See [delta](https://github.com/GoogleChrome/web-vitals?tab=readme-ov-file#report-only-the-delta-of-changes).", | |
"requirement_level": "required", | |
"examples": [ | |
0.2 | |
] | |
}, | |
{ | |
"id": "id", | |
"type": "string", | |
"stability": "development", | |
"brief": "A unique ID representing this particular metric instance.", | |
"requirement_level": "required", | |
"examples": [ | |
"v3-1677874579383-6381583661209" | |
] | |
} | |
] | |
} | |
}, | |
{ | |
"id": "registry.browser", | |
"type": "attribute_group", | |
"display_name": "Browser Attributes", | |
"brief": "The web browser attributes\n", | |
"attributes": [ | |
"browser.brands", | |
"browser.platform", | |
"browser.mobile", | |
"browser.language" | |
] | |
}, | |
{ | |
"id": "resource.browser", | |
"type": "resource", | |
"stability": "development", | |
"name": "browser", | |
"brief": "The web browser in which the application represented by the resource is running. The `browser.*` attributes MUST be used only for resources that represent applications running in a web browser (regardless of whether running on a mobile or desktop device).\n", | |
"attributes": [ | |
"browser.brands", | |
"browser.platform", | |
"browser.mobile", | |
"browser.language", | |
"user_agent.original" | |
] | |
}, | |
{ | |
"id": "registry.cassandra", | |
"type": "attribute_group", | |
"display_name": "Cassandra Attributes", | |
"brief": "This section defines attributes for Cassandra.\n", | |
"attributes": [ | |
"cassandra.coordinator.dc", | |
"cassandra.coordinator.id", | |
"cassandra.consistency.level", | |
"cassandra.query.idempotent", | |
"cassandra.page.size", | |
"cassandra.speculative_execution.count" | |
] | |
}, | |
{ | |
"id": "metric.cicd.pipeline.run.duration", | |
"type": "metric", | |
"metric_name": "cicd.pipeline.run.duration", | |
"brief": "Duration of a pipeline run grouped by pipeline, state and result.", | |
"instrument": "histogram", | |
"unit": "s", | |
"stability": "development", | |
"attributes": [ | |
"cicd.pipeline.name", | |
"cicd.pipeline.run.state", | |
"cicd.pipeline.result", | |
"error.type" | |
], | |
"entity_associations": [ | |
"cicd.pipeline" | |
] | |
}, | |
{ | |
"id": "metric.cicd.pipeline.run.active", | |
"type": "metric", | |
"metric_name": "cicd.pipeline.run.active", | |
"brief": "The number of pipeline runs currently active in the system by state.", | |
"instrument": "updowncounter", | |
"unit": "{run}", | |
"stability": "development", | |
"attributes": [ | |
"cicd.pipeline.name", | |
"cicd.pipeline.run.state" | |
], | |
"entity_associations": [ | |
"cicd.pipeline" | |
] | |
}, | |
{ | |
"id": "metric.cicd.worker.count", | |
"type": "metric", | |
"metric_name": "cicd.worker.count", | |
"brief": "The number of workers on the CICD system by state.", | |
"instrument": "updowncounter", | |
"unit": "{count}", | |
"stability": "development", | |
"attributes": [ | |
"cicd.worker.state" | |
] | |
}, | |
{ | |
"id": "metric.cicd.pipeline.run.errors", | |
"type": "metric", | |
"metric_name": "cicd.pipeline.run.errors", | |
"brief": "The number of errors encountered in pipeline runs (eg. compile, test failures).", | |
"note": "There might be errors in a pipeline run that are non fatal (eg. they are suppressed) or in a parallel stage multiple stages could have a fatal error.\nThis means that this error count might not be the same as the count of metric `cicd.pipeline.run.duration` with run result `failure`.\n", | |
"instrument": "counter", | |
"unit": "{error}", | |
"stability": "development", | |
"attributes": [ | |
"cicd.pipeline.name", | |
"error.type" | |
], | |
"entity_associations": [ | |
"cicd.pipeline" | |
] | |
}, | |
{ | |
"id": "metric.cicd.system.errors", | |
"type": "metric", | |
"metric_name": "cicd.system.errors", | |
"brief": "The number of errors in a component of the CICD system (eg. controller, scheduler, agent).", | |
"note": "Errors in pipeline run execution are explicitly excluded. Ie a test failure is not counted in this metric.", | |
"instrument": "counter", | |
"unit": "{error}", | |
"stability": "development", | |
"attributes": [ | |
"cicd.system.component", | |
"error.type" | |
] | |
}, | |
{ | |
"id": "registry.cicd.pipeline", | |
"type": "attribute_group", | |
"display_name": "CI/CD Pipeline Attributes", | |
"brief": "This group describes attributes specific to pipelines within a Continuous Integration and Continuous Deployment (CI/CD) system. A [pipeline](https://wikipedia.org/wiki/Pipeline_(computing)) in this case is a series of steps that are performed in order to deliver a new version of software. This aligns with the [Britannica](https://www.britannica.com/dictionary/pipeline) definition of a pipeline where a **pipeline** is the system for developing and producing something. In the context of CI/CD, a pipeline produces or delivers software.\n", | |
"attributes": [ | |
"cicd.pipeline.name", | |
"cicd.pipeline.run.id", | |
"cicd.pipeline.run.url.full", | |
"cicd.pipeline.run.state", | |
"cicd.pipeline.task.name", | |
"cicd.pipeline.task.run.id", | |
"cicd.pipeline.task.run.url.full", | |
"cicd.pipeline.task.run.result", | |
"cicd.pipeline.task.type", | |
"cicd.pipeline.result", | |
"cicd.pipeline.action.name", | |
"cicd.worker.id", | |
"cicd.worker.name", | |
"cicd.worker.url.full", | |
"cicd.worker.state", | |
"cicd.system.component" | |
] | |
}, | |
{ | |
"id": "resource.cicd.pipeline", | |
"type": "resource", | |
"stability": "development", | |
"name": "cicd.pipeline", | |
"brief": "A pipeline is a series of automated steps that helps software teams deliver code.\n", | |
"attributes": [ | |
"cicd.pipeline.name" | |
] | |
}, | |
{ | |
"id": "resource.cicd.pipeline.run", | |
"type": "resource", | |
"stability": "development", | |
"name": "cicd.pipeline.run", | |
"brief": "A pipeline run is a singular execution of a given pipeline's tasks.\n", | |
"attributes": [ | |
"cicd.pipeline.run.id", | |
"cicd.pipeline.run.url.full" | |
] | |
}, | |
{ | |
"id": "resource.cicd.worker", | |
"type": "resource", | |
"stability": "development", | |
"name": "cicd.worker", | |
"brief": "A CICD worker is a component of the CICD system that performs work (eg. running pipeline tasks or performing sync).\n", | |
"attributes": [ | |
"cicd.worker.id", | |
"cicd.worker.name", | |
"cicd.worker.url.full" | |
] | |
}, | |
{ | |
"id": "span.cicd.pipeline.run.server", | |
"type": "span", | |
"span_kind": "server", | |
"brief": "This span describes a CICD pipeline run.", | |
"note": "For all pipeline runs, a span with kind `SERVER` SHOULD be created corresponding to the execution of the pipeline run.\n\n**Span name** MUST follow the overall [guidelines for span names](https://github.com/open-telemetry/opentelemetry-specification/tree/v1.43.0/specification/trace/api.md#span).\n\nThe span name SHOULD be `{action} {pipeline}` if there is a (low-cardinality) pipeline name available.\nIf the pipeline name is not available or is likely to have high cardinality, then the span name SHOULD be `{action}`.\n\nThe `{action}` SHOULD be the [`cicd.pipeline.action.name`](/docs/attributes-registry/cicd.md#cicd-pipeline-action-name).\n\nThe `{pipeline}` SHOULD be the [`cicd.pipeline.name`](/docs/attributes-registry/cicd.md#cicd-pipeline-name).\n", | |
"stability": "development", | |
"attributes": [ | |
"cicd.pipeline.result", | |
"error.type", | |
"cicd.pipeline.action.name" | |
] | |
}, | |
{ | |
"id": "span.cicd.pipeline.task.internal", | |
"type": "span", | |
"span_kind": "internal", | |
"brief": "This span describes task execution in a pipeline run.", | |
"stability": "development", | |
"attributes": [ | |
"cicd.pipeline.task.name", | |
"cicd.pipeline.task.run.id", | |
"cicd.pipeline.task.run.url.full", | |
"cicd.pipeline.task.run.result", | |
"error.type" | |
] | |
}, | |
{ | |
"id": "attributes.cli.common", | |
"type": "attribute_group", | |
"brief": "Common CLI attributes.\n", | |
"attributes": [ | |
"process.executable.name", | |
"process.executable.path", | |
"process.pid", | |
"process.exit.code", | |
"process.command_args", | |
"error.type" | |
] | |
}, | |
{ | |
"id": "span.cli.internal", | |
"type": "span", | |
"span_kind": "internal", | |
"stability": "development", | |
"brief": "This span describes CLI (Command Line Interfaces) program execution from a callee perspective.\n", | |
"note": "**Span name** SHOULD be set to {process.executable.name}.\nInstrumentations that have additional context about executed commands MAY use\na different low-cardinality span name format and SHOULD document it.\n\n**Span status** SHOULD be set to Error if {process.exit.code} is not 0. Refer to\nthe [Recording Errors](/docs/general/recording-errors.md) document for details on how to record span status.\n", | |
"extends": "attributes.cli.common" | |
}, | |
{ | |
"id": "span.cli.client", | |
"type": "span", | |
"span_kind": "client", | |
"stability": "development", | |
"brief": "This span describes CLI (Command Line Interfaces) program execution from a caller perspective.\n", | |
"note": "**Span name** SHOULD be set to {process.executable.name}.\nInstrumentations that have additional context about executed commands MAY use\na different low-cardinality span name format and SHOULD document it.\n\n**Span status** SHOULD be set to Error if {process.exit.code} is not 0. Refer to\nthe [Recording Errors](/docs/general/recording-errors.md) document for details on how to record span status.\n", | |
"extends": "attributes.cli.common" | |
}, | |
{ | |
"id": "client", | |
"type": "attribute_group", | |
"brief": "General client attributes.\n", | |
"attributes": [ | |
"client.address", | |
"client.port" | |
] | |
}, | |
{ | |
"id": "registry.client", | |
"type": "attribute_group", | |
"display_name": "Client Attributes", | |
"brief": "These attributes may be used to describe the client in a connection-based network interaction where there is one side that initiates the connection (the client is the side that initiates the connection). This covers all TCP network interactions since TCP is connection-based and one side initiates the connection (an exception is made for peer-to-peer communication over TCP where the \"user-facing\" surface of the protocol / API doesn't expose a clear notion of client and server). This also covers UDP network interactions where one side initiates the interaction, e.g. QUIC (HTTP/3) and DNS.\n", | |
"attributes": [ | |
"client.address", | |
"client.port" | |
] | |
}, | |
{ | |
"id": "registry.cloud", | |
"type": "attribute_group", | |
"display_name": "Cloud Attributes", | |
"brief": "A cloud environment (e.g. GCP, Azure, AWS).\n", | |
"attributes": [ | |
"cloud.provider", | |
"cloud.account.id", | |
"cloud.region", | |
"cloud.resource_id", | |
"cloud.availability_zone", | |
"cloud.platform" | |
] | |
}, | |
{ | |
"id": "resource.cloud", | |
"type": "resource", | |
"stability": "development", | |
"name": "cloud", | |
"brief": "A cloud environment (e.g. GCP, Azure, AWS)\n", | |
"attributes": [ | |
"cloud.provider", | |
"cloud.account.id", | |
"cloud.region", | |
"cloud.resource_id", | |
"cloud.availability_zone", | |
"cloud.platform" | |
] | |
}, | |
{ | |
"id": "registry.cloudevents", | |
"type": "attribute_group", | |
"display_name": "CloudEvents Attributes", | |
"brief": "This document defines attributes for CloudEvents.\n", | |
"attributes": [ | |
"cloudevents.event_id", | |
"cloudevents.event_source", | |
"cloudevents.event_spec_version", | |
"cloudevents.event_type", | |
"cloudevents.event_subject" | |
] | |
}, | |
{ | |
"id": "cloudevents", | |
"type": "attribute_group", | |
"brief": "This document defines attributes for CloudEvents. CloudEvents is a specification on how to define event data in a standard way. These attributes can be attached to spans when performing operations with CloudEvents, regardless of the protocol being used.\n", | |
"attributes": [ | |
"cloudevents.event_id", | |
"cloudevents.event_source", | |
"cloudevents.event_spec_version", | |
"cloudevents.event_type", | |
"cloudevents.event_subject" | |
] | |
}, | |
{ | |
"id": "registry.cloudfoundry", | |
"type": "attribute_group", | |
"display_name": "CloudFoundry Attributes", | |
"brief": "CloudFoundry resource attributes.\n", | |
"attributes": [ | |
"cloudfoundry.system.id", | |
"cloudfoundry.system.instance.id", | |
"cloudfoundry.app.name", | |
"cloudfoundry.app.id", | |
"cloudfoundry.app.instance.id", | |
"cloudfoundry.space.name", | |
"cloudfoundry.space.id", | |
"cloudfoundry.org.name", | |
"cloudfoundry.org.id", | |
"cloudfoundry.process.id", | |
"cloudfoundry.process.type" | |
] | |
}, | |
{ | |
"id": "resource.cloudfoundry.system", | |
"type": "resource", | |
"stability": "development", | |
"name": "cloudfoundry.system", | |
"brief": "The system component which is monitored.\n", | |
"attributes": [ | |
"cloudfoundry.system.id", | |
"cloudfoundry.system.instance.id" | |
] | |
}, | |
{ | |
"id": "resource.cloudfoundry.app", | |
"type": "resource", | |
"stability": "development", | |
"name": "cloudfoundry.app", | |
"brief": "The application which is monitored.\n", | |
"attributes": [ | |
"cloudfoundry.app.id", | |
"cloudfoundry.app.name" | |
] | |
}, | |
{ | |
"id": "resource.cloudfoundry.space", | |
"type": "resource", | |
"stability": "development", | |
"name": "cloudfoundry.space", | |
"brief": "The space of the application which is monitored.\n", | |
"attributes": [ | |
"cloudfoundry.space.id", | |
"cloudfoundry.space.name" | |
] | |
}, | |
{ | |
"id": "resource.cloudfoundry.org", | |
"type": "resource", | |
"stability": "development", | |
"name": "cloudfoundry.org", | |
"brief": "The organization of the application which is monitored.\n", | |
"attributes": [ | |
"cloudfoundry.org.id", | |
"cloudfoundry.org.name" | |
] | |
}, | |
{ | |
"id": "resource.cloudfoundry.process", | |
"type": "resource", | |
"stability": "development", | |
"name": "cloudfoundry.process", | |
"brief": "The process of the application which is monitored.\n", | |
"attributes": [ | |
"cloudfoundry.process.id", | |
"cloudfoundry.process.type" | |
] | |
}, | |
{ | |
"id": "code", | |
"type": "attribute_group", | |
"brief": "These attributes provide context about source code\n", | |
"attributes": [ | |
"code.function.name", | |
"code.file.path", | |
"code.line.number", | |
"code.column.number", | |
"code.stacktrace" | |
] | |
}, | |
{ | |
"id": "registry.code.deprecated", | |
"type": "attribute_group", | |
"display_name": "Deprecated Code Attributes", | |
"brief": "These deprecated attributes provide context about source code\n", | |
"attributes": [ | |
"code.function", | |
"code.filepath", | |
"code.lineno", | |
"code.column", | |
"code.namespace" | |
] | |
}, | |
{ | |
"id": "registry.code", | |
"type": "attribute_group", | |
"display_name": "Code Attributes", | |
"brief": "These attributes provide context about source code\n", | |
"attributes": [ | |
"code.function.name", | |
"code.file.path", | |
"code.line.number", | |
"code.column.number", | |
"code.stacktrace" | |
] | |
}, | |
{ | |
"id": "registry.container.deprecated", | |
"type": "attribute_group", | |
"display_name": "Deprecated Container Attributes", | |
"brief": "Describes deprecated container attributes.", | |
"attributes": [ | |
"container.labels", | |
"container.cpu.state" | |
] | |
}, | |
{ | |
"id": "metric.container.uptime", | |
"type": "metric", | |
"metric_name": "container.uptime", | |
"stability": "development", | |
"brief": "The time the container has been running", | |
"note": "Instrumentations SHOULD use a gauge with type `double` and measure uptime in seconds as a floating point number with the highest precision available.\nThe actual accuracy would depend on the instrumentation and operating system.\n", | |
"instrument": "gauge", | |
"unit": "s" | |
}, | |
{ | |
"id": "metric.container.cpu.time", | |
"type": "metric", | |
"metric_name": "container.cpu.time", | |
"stability": "development", | |
"brief": "Total CPU time consumed", | |
"note": "Total CPU time consumed by the specific container on all available CPU cores\n", | |
"instrument": "counter", | |
"unit": "s", | |
"attributes": [ | |
"cpu.mode" | |
] | |
}, | |
{ | |
"id": "metric.container.cpu.usage", | |
"type": "metric", | |
"metric_name": "container.cpu.usage", | |
"stability": "development", | |
"brief": "Container's CPU usage, measured in cpus. Range from 0 to the number of allocatable CPUs", | |
"note": "CPU usage of the specific container on all available CPU cores, averaged over the sample window\n", | |
"instrument": "gauge", | |
"unit": "{cpu}", | |
"attributes": [ | |
"cpu.mode" | |
] | |
}, | |
{ | |
"id": "metric.container.memory.usage", | |
"type": "metric", | |
"metric_name": "container.memory.usage", | |
"stability": "development", | |
"brief": "Memory usage of the container.", | |
"note": "Memory usage of the container.\n", | |
"instrument": "counter", | |
"unit": "By" | |
}, | |
{ | |
"id": "metric.container.disk.io", | |
"type": "metric", | |
"metric_name": "container.disk.io", | |
"stability": "development", | |
"brief": "Disk bytes for the container.", | |
"note": "The total number of bytes read/written successfully (aggregated from all disks).\n", | |
"instrument": "counter", | |
"unit": "By", | |
"attributes": [ | |
"disk.io.direction", | |
"system.device" | |
] | |
}, | |
{ | |
"id": "metric.container.network.io", | |
"type": "metric", | |
"metric_name": "container.network.io", | |
"stability": "development", | |
"brief": "Network bytes for the container.", | |
"note": "The number of bytes sent/received on all network interfaces by the container.\n", | |
"instrument": "counter", | |
"unit": "By", | |
"attributes": [ | |
"network.io.direction", | |
"network.interface.name" | |
] | |
}, | |
{ | |
"id": "registry.container", | |
"type": "attribute_group", | |
"display_name": "Container Attributes", | |
"brief": "A container instance.\n", | |
"attributes": [ | |
"container.name", | |
"container.id", | |
"container.runtime", | |
"container.image.name", | |
"container.image.tags", | |
"container.image.id", | |
"container.image.repo_digests", | |
"container.command", | |
"container.command_line", | |
"container.command_args", | |
"container.label", | |
"container.csi.plugin.name", | |
"container.csi.volume.id" | |
] | |
}, | |
{ | |
"id": "resource.container", | |
"type": "entity", | |
"stability": "development", | |
"name": "container", | |
"brief": "A container instance.\n", | |
"attributes": [ | |
"container.id" | |
], | |
"relationships": [ | |
{ | |
"runs_on": "host" | |
} | |
], | |
"descriptive_attributes": [ | |
"container.name", | |
"container.runtime", | |
"container.image.name", | |
"container.image.tags", | |
"container.image.id", | |
"container.image.repo_digests", | |
"container.command", | |
"container.command_line", | |
"container.command_args", | |
"container.label", | |
"oci.manifest.digest" | |
] | |
}, | |
{ | |
"id": "metric.cpu.time", | |
"type": "metric", | |
"metric_name": "cpu.time", | |
"stability": "development", | |
"brief": "Seconds each logical CPU spent on each mode", | |
"instrument": "counter", | |
"unit": "s", | |
"attributes": [ | |
"cpu.mode", | |
"cpu.logical_number" | |
] | |
}, | |
{ | |
"id": "metric.cpu.utilization", | |
"type": "metric", | |
"metric_name": "cpu.utilization", | |
"stability": "development", | |
"brief": "For each logical CPU, the utilization is calculated as the change in cumulative CPU time (cpu.time) over a measurement interval, divided by the elapsed time.", | |
"instrument": "gauge", | |
"unit": "1", | |
"attributes": [ | |
"cpu.mode", | |
"cpu.logical_number" | |
] | |
}, | |
{ | |
"id": "metric.cpu.frequency", | |
"type": "metric", | |
"metric_name": "cpu.frequency", | |
"stability": "development", | |
"brief": "Operating frequency of the logical CPU in Hertz.", | |
"instrument": "gauge", | |
"unit": "Hz", | |
"attributes": [ | |
"cpu.logical_number" | |
] | |
}, | |
{ | |
"id": "registry.cpu", | |
"type": "attribute_group", | |
"brief": "Attributes specific to a cpu instance.", | |
"display_name": "CPU Attributes", | |
"attributes": [ | |
"cpu.mode", | |
"cpu.logical_number" | |
] | |
}, | |
{ | |
"id": "metric.cpython.gc.collections", | |
"type": "metric", | |
"metric_name": "cpython.gc.collections", | |
"brief": "The number of times a generation was collected since interpreter start.", | |
"note": "This metric reports data from [`gc.stats()`](https://docs.python.org/3/library/gc.html#gc.get_stats).\n", | |
"instrument": "counter", | |
"unit": "{collection}", | |
"stability": "development", | |
"attributes": [ | |
"cpython.gc.generation" | |
] | |
}, | |
{ | |
"id": "metric.cpython.gc.collected_objects", | |
"type": "metric", | |
"metric_name": "cpython.gc.collected_objects", | |
"brief": "The total number of objects collected inside a generation since interpreter start.", | |
"note": "This metric reports data from [`gc.stats()`](https://docs.python.org/3/library/gc.html#gc.get_stats).\n", | |
"instrument": "counter", | |
"unit": "{object}", | |
"stability": "development", | |
"attributes": [ | |
"cpython.gc.generation" | |
] | |
}, | |
{ | |
"id": "metric.cpython.gc.uncollectable_objects", | |
"type": "metric", | |
"metric_name": "cpython.gc.uncollectable_objects", | |
"brief": "The total number of objects which were found to be uncollectable inside a generation since interpreter start.", | |
"note": "This metric reports data from [`gc.stats()`](https://docs.python.org/3/library/gc.html#gc.get_stats).\n", | |
"instrument": "counter", | |
"unit": "{object}", | |
"stability": "development", | |
"attributes": [ | |
"cpython.gc.generation" | |
] | |
}, | |
{ | |
"id": "registry.cpython", | |
"type": "attribute_group", | |
"display_name": "CPython attributes", | |
"brief": "This document defines CPython related attributes.\n", | |
"attributes": [ | |
"cpython.gc.generation" | |
] | |
}, | |
{ | |
"id": "attributes.db.client.minimal", | |
"type": "attribute_group", | |
"brief": "Database Client attributes", | |
"attributes": [ | |
"server.address", | |
"server.port", | |
"db.response.status_code", | |
"error.type" | |
] | |
}, | |
{ | |
"id": "attributes.azure.cosmosdb.minimal", | |
"type": "attribute_group", | |
"brief": "Azure Cosmos DB Client attributes", | |
"stability": "development", | |
"extends": "attributes.db.client.minimal", | |
"attributes": [ | |
"db.operation.name", | |
"db.collection.name", | |
"db.namespace", | |
"azure.cosmosdb.response.sub_status_code", | |
"azure.cosmosdb.consistency.level" | |
] | |
}, | |
{ | |
"id": "attributes.db.client.with_query", | |
"extends": "attributes.db.client.minimal", | |
"type": "attribute_group", | |
"brief": "This group defines the attributes describing database operations that may have queries.", | |
"attributes": [ | |
"db.query.text", | |
"db.query.summary" | |
] | |
}, | |
{ | |
"id": "attributes.db.client.with_query_and_collection", | |
"extends": "attributes.db.client.with_query", | |
"type": "attribute_group", | |
"brief": "This group defines the attributes describing database operations that have operation name, collection name and query.", | |
"attributes": [ | |
"db.operation.name", | |
"db.collection.name" | |
] | |
}, | |
{ | |
"id": "metric.db.client.connections.usage", | |
"type": "metric", | |
"metric_name": "db.client.connections.usage", | |
"stability": "development", | |
"deprecated": "Replaced by `db.client.connection.count`.", | |
"brief": "Deprecated, use `db.client.connection.count` instead.", | |
"instrument": "updowncounter", | |
"unit": "{connection}", | |
"attributes": [ | |
"db.client.connections.state", | |
"db.client.connections.pool.name" | |
] | |
}, | |
{ | |
"id": "metric.db.client.connections.idle.max", | |
"type": "metric", | |
"metric_name": "db.client.connections.idle.max", | |
"stability": "development", | |
"deprecated": "Replaced by `db.client.connection.idle.max`.", | |
"brief": "Deprecated, use `db.client.connection.idle.max` instead.", | |
"instrument": "updowncounter", | |
"unit": "{connection}", | |
"attributes": [ | |
"db.client.connections.pool.name" | |
] | |
}, | |
{ | |
"id": "metric.db.client.connections.idle.min", | |
"type": "metric", | |
"metric_name": "db.client.connections.idle.min", | |
"stability": "development", | |
"deprecated": "Replaced by `db.client.connection.idle.min`.", | |
"brief": "Deprecated, use `db.client.connection.idle.min` instead.", | |
"instrument": "updowncounter", | |
"unit": "{connection}", | |
"attributes": [ | |
"db.client.connections.pool.name" | |
] | |
}, | |
{ | |
"id": "metric.db.client.connections.max", | |
"type": "metric", | |
"metric_name": "db.client.connections.max", | |
"stability": "development", | |
"deprecated": "Replaced by `db.client.connection.max`.", | |
"brief": "Deprecated, use `db.client.connection.max` instead.", | |
"instrument": "updowncounter", | |
"unit": "{connection}", | |
"attributes": [ | |
"db.client.connections.pool.name" | |
] | |
}, | |
{ | |
"id": "metric.db.client.connections.pending_requests", | |
"type": "metric", | |
"metric_name": "db.client.connections.pending_requests", | |
"stability": "development", | |
"deprecated": "Replaced by `db.client.connection.pending_requests`.", | |
"brief": "Deprecated, use `db.client.connection.pending_requests` instead.", | |
"instrument": "updowncounter", | |
"unit": "{request}", | |
"attributes": [ | |
"db.client.connections.pool.name" | |
] | |
}, | |
{ | |
"id": "metric.db.client.connections.timeouts", | |
"type": "metric", | |
"metric_name": "db.client.connections.timeouts", | |
"stability": "development", | |
"deprecated": "Replaced by `db.client.connection.timeouts`.", | |
"brief": "Deprecated, use `db.client.connection.timeouts` instead.", | |
"instrument": "counter", | |
"unit": "{timeout}", | |
"attributes": [ | |
"db.client.connections.pool.name" | |
] | |
}, | |
{ | |
"id": "metric.db.client.connections.create_time", | |
"type": "metric", | |
"metric_name": "db.client.connections.create_time", | |
"stability": "development", | |
"deprecated": "Replaced by `db.client.connection.create_time`. Note: the unit also changed from `ms` to `s`.", | |
"brief": "Deprecated, use `db.client.connection.create_time` instead. Note: the unit also changed from `ms` to `s`.", | |
"instrument": "histogram", | |
"unit": "ms", | |
"attributes": [ | |
"db.client.connections.pool.name" | |
] | |
}, | |
{ | |
"id": "metric.db.client.connections.wait_time", | |
"type": "metric", | |
"metric_name": "db.client.connections.wait_time", | |
"stability": "development", | |
"deprecated": "Replaced by `db.client.connection.wait_time`. Note: the unit also changed from `ms` to `s`.", | |
"brief": "Deprecated, use `db.client.connection.wait_time` instead. Note: the unit also changed from `ms` to `s`.", | |
"instrument": "histogram", | |
"unit": "ms", | |
"attributes": [ | |
"db.client.connections.pool.name" | |
] | |
}, | |
{ | |
"id": "metric.db.client.connections.use_time", | |
"type": "metric", | |
"metric_name": "db.client.connections.use_time", | |
"stability": "development", | |
"deprecated": "Replaced by `db.client.connection.use_time`. Note: the unit also changed from `ms` to `s`.", | |
"brief": "Deprecated, use `db.client.connection.use_time` instead. Note: the unit also changed from `ms` to `s`.", | |
"instrument": "histogram", | |
"unit": "ms", | |
"attributes": [ | |
"db.client.connections.pool.name" | |
] | |
}, | |
{ | |
"id": "metric.db.client.cosmosdb.operation.request_charge", | |
"type": "metric", | |
"metric_name": "db.client.cosmosdb.operation.request_charge", | |
"brief": "Deprecated, use `azure.cosmosdb.client.operation.request_charge` instead.", | |
"deprecated": "Replaced by `azure.cosmosdb.client.operation.request_charge`.", | |
"instrument": "histogram", | |
"unit": "{request_unit}", | |
"stability": "development", | |
"attributes": [ | |
"db.operation.name", | |
"db.collection.name", | |
"db.namespace", | |
"db.cosmosdb.sub_status_code", | |
"db.cosmosdb.consistency_level", | |
"db.cosmosdb.regions_contacted" | |
] | |
}, | |
{ | |
"id": "metric.db.client.cosmosdb.active_instance.count", | |
"type": "metric", | |
"metric_name": "db.client.cosmosdb.active_instance.count", | |
"brief": "Deprecated, use `azure.cosmosdb.client.active_instance.count` instead.", | |
"deprecated": "Replaced by `azure.cosmosdb.client.active_instance.count`.", | |
"instrument": "updowncounter", | |
"unit": "{instance}", | |
"stability": "development", | |
"attributes": [ | |
"server.address", | |
"server.port" | |
] | |
}, | |
{ | |
"id": "registry.db.deprecated", | |
"type": "attribute_group", | |
"display_name": "Deprecated Database Attributes", | |
"brief": "Describes deprecated database attributes.\n", | |
"stability": "development", | |
"attributes": [ | |
"db.connection_string", | |
"db.jdbc.driver_classname", | |
"db.operation", | |
"db.user", | |
"db.statement", | |
"db.cassandra.table", | |
"db.cosmosdb.container", | |
"db.mongodb.collection", | |
"db.sql.table", | |
"db.redis.database_index", | |
"db.name", | |
"db.mssql.instance_name", | |
"db.instance.id", | |
"db.elasticsearch.cluster.name", | |
"db.cosmosdb.status_code", | |
"db.cosmosdb.operation_type", | |
"db.cassandra.coordinator.dc", | |
"db.cassandra.coordinator.id", | |
"db.cassandra.consistency_level", | |
"db.cassandra.idempotence", | |
"db.cassandra.page_size", | |
"db.cassandra.speculative_execution_count", | |
"db.cosmosdb.client_id", | |
"db.cosmosdb.connection_mode", | |
"db.cosmosdb.request_charge", | |
"db.cosmosdb.request_content_length", | |
"db.cosmosdb.sub_status_code", | |
"db.cosmosdb.consistency_level", | |
"db.cosmosdb.regions_contacted", | |
"db.elasticsearch.node.name", | |
"db.elasticsearch.path_parts", | |
"db.system" | |
] | |
}, | |
{ | |
"id": "registry.db.metrics.deprecated", | |
"type": "attribute_group", | |
"display_name": "Deprecated Database Metrics", | |
"brief": "\"Describes deprecated db metrics attributes.\"\n", | |
"stability": "development", | |
"attributes": [ | |
"state", | |
"pool.name", | |
"db.client.connections.state", | |
"db.client.connections.pool.name" | |
] | |
}, | |
{ | |
"id": "metric.db.client.operation.duration", | |
"type": "metric", | |
"metric_name": "db.client.operation.duration", | |
"brief": "Duration of database client operations.", | |
"note": "Batch operations SHOULD be recorded as a single operation.\n", | |
"instrument": "histogram", | |
"unit": "s", | |
"stability": "stable", | |
"extends": "attributes.db.client.with_query_and_collection", | |
"attributes": [ | |
"db.system.name", | |
"db.stored_procedure.name", | |
"network.peer.address", | |
"network.peer.port", | |
"db.namespace", | |
"db.query.text" | |
] | |
}, | |
{ | |
"id": "metric.db.client.connection.count", | |
"type": "metric", | |
"metric_name": "db.client.connection.count", | |
"stability": "development", | |
"brief": "The number of connections that are currently in state described by the `state` attribute", | |
"instrument": "updowncounter", | |
"unit": "{connection}", | |
"attributes": [ | |
"db.client.connection.state", | |
"db.client.connection.pool.name" | |
] | |
}, | |
{ | |
"id": "metric.db.client.connection.idle.max", | |
"type": "metric", | |
"metric_name": "db.client.connection.idle.max", | |
"stability": "development", | |
"brief": "The maximum number of idle open connections allowed", | |
"instrument": "updowncounter", | |
"unit": "{connection}", | |
"attributes": [ | |
"db.client.connection.pool.name" | |
] | |
}, | |
{ | |
"id": "metric.db.client.connection.idle.min", | |
"type": "metric", | |
"metric_name": "db.client.connection.idle.min", | |
"stability": "development", | |
"brief": "The minimum number of idle open connections allowed", | |
"instrument": "updowncounter", | |
"unit": "{connection}", | |
"attributes": [ | |
"db.client.connection.pool.name" | |
] | |
}, | |
{ | |
"id": "metric.db.client.connection.max", | |
"type": "metric", | |
"metric_name": "db.client.connection.max", | |
"stability": "development", | |
"brief": "The maximum number of open connections allowed", | |
"instrument": "updowncounter", | |
"unit": "{connection}", | |
"attributes": [ | |
"db.client.connection.pool.name" | |
] | |
}, | |
{ | |
"id": "metric.db.client.connection.pending_requests", | |
"type": "metric", | |
"metric_name": "db.client.connection.pending_requests", | |
"stability": "development", | |
"brief": "The number of current pending requests for an open connection", | |
"instrument": "updowncounter", | |
"unit": "{request}", | |
"attributes": [ | |
"db.client.connection.pool.name" | |
] | |
}, | |
{ | |
"id": "metric.db.client.connection.timeouts", | |
"type": "metric", | |
"metric_name": "db.client.connection.timeouts", | |
"stability": "development", | |
"brief": "The number of connection timeouts that have occurred trying to obtain a connection from the pool", | |
"instrument": "counter", | |
"unit": "{timeout}", | |
"attributes": [ | |
"db.client.connection.pool.name" | |
] | |
}, | |
{ | |
"id": "metric.db.client.connection.create_time", | |
"type": "metric", | |
"metric_name": "db.client.connection.create_time", | |
"stability": "development", | |
"brief": "The time it took to create a new connection", | |
"instrument": "histogram", | |
"unit": "s", | |
"attributes": [ | |
"db.client.connection.pool.name" | |
] | |
}, | |
{ | |
"id": "metric.db.client.connection.wait_time", | |
"type": "metric", | |
"metric_name": "db.client.connection.wait_time", | |
"stability": "development", | |
"brief": "The time it took to obtain an open connection from the pool", | |
"instrument": "histogram", | |
"unit": "s", | |
"attributes": [ | |
"db.client.connection.pool.name" | |
] | |
}, | |
{ | |
"id": "metric.db.client.connection.use_time", | |
"type": "metric", | |
"metric_name": "db.client.connection.use_time", | |
"stability": "development", | |
"brief": "The time between borrowing a connection and returning it to the pool", | |
"instrument": "histogram", | |
"unit": "s", | |
"attributes": [ | |
"db.client.connection.pool.name" | |
] | |
}, | |
{ | |
"id": "metric.db.client.response.returned_rows", | |
"type": "metric", | |
"metric_name": "db.client.response.returned_rows", | |
"brief": "The actual number of records returned by the database operation.", | |
"instrument": "histogram", | |
"unit": "{row}", | |
"stability": "development", | |
"extends": "attributes.db.client.with_query_and_collection", | |
"attributes": [ | |
"db.system.name", | |
"network.peer.address", | |
"network.peer.port", | |
"db.namespace", | |
"db.query.text" | |
] | |
}, | |
{ | |
"id": "registry.db", | |
"type": "attribute_group", | |
"display_name": "General Database Attributes", | |
"brief": "This group defines the attributes used to describe telemetry in the context of databases.\n", | |
"attributes": [ | |
"db.collection.name", | |
"db.namespace", | |
"db.operation.name", | |
"db.query.text", | |
"db.query.parameter", | |
"db.query.summary", | |
"db.stored_procedure.name", | |
"db.operation.parameter", | |
"db.operation.batch.size", | |
"db.response.status_code", | |
"db.response.returned_rows", | |
"db.system.name", | |
"db.client.connection.state", | |
"db.client.connection.pool.name" | |
] | |
}, | |
{ | |
"id": "trace.db.common.minimal", | |
"extends": "attributes.db.client.minimal", | |
"type": "attribute_group", | |
"brief": "This group defines the attributes used to perform database client calls.", | |
"attributes": [ | |
"db.operation.name", | |
"db.operation.batch.size", | |
"server.address", | |
"server.port" | |
] | |
}, | |
{ | |
"id": "trace.db.common.query", | |
"extends": "attributes.db.client.with_query", | |
"type": "attribute_group", | |
"brief": "This group defines the attributes used to perform database client calls.", | |
"attributes": [ | |
"server.address", | |
"server.port", | |
"db.operation.batch.size", | |
"db.response.returned_rows", | |
"db.query.text", | |
"db.query.summary", | |
"db.query.parameter" | |
] | |
}, | |
{ | |
"id": "trace.db.common.query_and_collection", | |
"extends": "attributes.db.client.with_query_and_collection", | |
"type": "attribute_group", | |
"brief": "This group defines the attributes used to perform database client calls.", | |
"attributes": [ | |
"db.collection.name", | |
"db.operation.name", | |
"db.operation.batch.size", | |
"server.address", | |
"server.port", | |
"db.response.returned_rows", | |
"db.query.text", | |
"db.query.summary", | |
"db.query.parameter" | |
] | |
}, | |
{ | |
"id": "trace.db.common.full", | |
"type": "attribute_group", | |
"brief": "This group documents attributes that describe database call along with network information.", | |
"extends": "trace.db.common.query_and_collection", | |
"attributes": [ | |
"network.peer.address", | |
"network.peer.port", | |
"db.system.name", | |
"db.namespace", | |
"db.stored_procedure.name" | |
] | |
}, | |
{ | |
"id": "span.db.client", | |
"type": "span", | |
"stability": "stable", | |
"brief": "This span describes database client call.", | |
"note": "Instrumentations SHOULD, when possible, record database spans that cover the duration of\nthe corresponding API call as if it was observed by the caller (such as client application).\nFor example, if a transient issue happened and was retried within this database call, the corresponding\nspan should cover the duration of the logical operation with all retries.\n\nWhen a database client provides higher-level convenience APIs for specific operations\n(e.g., calling a stored procedure), which internally generate and execute a generic query,\nit is RECOMMENDED to instrument the higher-level convenience APIs.\nThese often allow setting `db.operation.*` attributes, which usually are not\nreadily available at the generic query level.\n\n**Span name** is covered in the [Name](/docs/database/database-spans.md#name) section.\n\n**Span kind** SHOULD be `CLIENT`. It MAY be set to `INTERNAL` on spans representing\nin-memory database calls.\nIt's RECOMMENDED to use `CLIENT` kind when database system being instrumented usually\nruns in a different process than its client or when database calls happen over\ninstrumented protocol such as HTTP.\n\n**Span status** Refer to the [Recording Errors](/docs/general/recording-errors.md)\ndocument for details on how to record span status. Semantic conventions for\nindividual systems SHOULD specify which values of `db.response.status_code`\nclassify as errors.\n", | |
"span_kind": "client", | |
"extends": "trace.db.common.full", | |
"attributes": [ | |
"db.response.returned_rows" | |
] | |
}, | |
{ | |
"id": "span.db.sql_server.client", | |
"type": "span", | |
"stability": "stable", | |
"extends": "span.db.sql.client", | |
"span_kind": "client", | |
"brief": "Spans representing calls to Microsoft SQL Server adhere to the general [Semantic Conventions for Database Client Spans](database-spans.md).\n", | |
"note": "`db.system.name` MUST be set to `\"microsoft.sql_server\"` and SHOULD be provided **at span creation time**.\n", | |
"attributes": [ | |
"db.namespace", | |
"db.response.status_code" | |
] | |
}, | |
{ | |
"id": "span.db.postgresql.client", | |
"type": "span", | |
"stability": "stable", | |
"extends": "span.db.sql.client", | |
"span_kind": "client", | |
"brief": "Spans representing calls to a PostgreSQL database adhere to the general [Semantic Conventions for Database Client Spans](database-spans.md).\n", | |
"note": "`db.system.name` MUST be set to `\"postgresql\"` and SHOULD be provided **at span creation time**.\n", | |
"attributes": [ | |
"db.namespace", | |
"db.response.status_code" | |
] | |
}, | |
{ | |
"id": "span.db.mysql.client", | |
"type": "span", | |
"stability": "stable", | |
"extends": "span.db.sql.client", | |
"span_kind": "client", | |
"brief": "Spans representing calls to a MySQL Server adhere to the general [Semantic Conventions for Database Client Spans](database-spans.md).\n", | |
"note": "`db.system.name` MUST be set to `\"microsoft.sql_server\"` and SHOULD be provided **at span creation time**.\n", | |
"attributes": [ | |
"db.namespace", | |
"db.response.status_code" | |
] | |
}, | |
{ | |
"id": "span.db.mariadb.client", | |
"type": "span", | |
"stability": "stable", | |
"extends": "span.db.sql.client", | |
"span_kind": "client", | |
"brief": "Spans representing calls to MariaDB adhere to the general [Semantic Conventions for Database Client Spans](/docs/database/README.md).\n", | |
"note": "`db.system.name` MUST be set to `\"mariadb\"` and SHOULD be provided **at span creation time**.\n", | |
"attributes": [ | |
"db.namespace", | |
"db.response.status_code" | |
] | |
}, | |
{ | |
"id": "span.db.cassandra.client", | |
"type": "span", | |
"span_kind": "client", | |
"stability": "development", | |
"extends": "trace.db.common.query_and_collection", | |
"brief": "Spans representing calls to a Cassandra database adhere to the general [Semantic Conventions for Database Client Spans](/docs/database/database-spans.md).\n", | |
"note": "`db.system.name` MUST be set to `\"cassandra\"` and SHOULD be provided **at span creation time**.\n\n**Span name** SHOULD follow the general [database span name convention](/docs/database/database-spans.md#name)\n", | |
"attributes": [ | |
"db.namespace", | |
"cassandra.page.size", | |
"cassandra.consistency.level", | |
"db.collection.name", | |
"cassandra.query.idempotent", | |
"cassandra.speculative_execution.count", | |
"cassandra.coordinator.id", | |
"cassandra.coordinator.dc", | |
"network.peer.address", | |
"network.peer.port", | |
"db.response.status_code" | |
] | |
}, | |
{ | |
"id": "span.db.hbase.client", | |
"type": "span", | |
"span_kind": "client", | |
"stability": "development", | |
"extends": "trace.db.common.minimal", | |
"brief": "Spans representing calls to an HBase database adhere to the general [Semantic Conventions for Database Client Spans](/docs/database/database-spans.md).\n", | |
"note": "`db.system.name` MUST be set to `\"hbase\"` and SHOULD be provided **at span creation time**.\n\n**Span name** SHOULD follow the general [database span name convention](/docs/database/database-spans.md#name)\n", | |
"attributes": [ | |
"db.namespace", | |
"db.collection.name", | |
"db.operation.name", | |
"db.response.status_code" | |
] | |
}, | |
{ | |
"id": "span.db.couchdb.client", | |
"type": "span", | |
"span_kind": "client", | |
"stability": "development", | |
"extends": "trace.db.common.minimal", | |
"brief": "Spans representing calls to CouchDB adhere to the general [Semantic Conventions for Database Client Spans](/docs/database/database-spans.md).\n", | |
"note": "`db.system.name` MUST be set to `\"couchdb\"` and SHOULD be provided **at span creation time**.\n\n**Span name** SHOULD follow the general [database span name convention](/docs/database/database-spans.md#name)\n", | |
"attributes": [ | |
"db.operation.name", | |
"db.namespace", | |
"db.response.status_code" | |
] | |
}, | |
{ | |
"id": "span.db.redis.client", | |
"type": "span", | |
"stability": "development", | |
"span_kind": "client", | |
"extends": "trace.db.common.minimal", | |
"brief": "Spans representing calls to Redis adhere to the general [Semantic Conventions for Database Client Spans](/docs/database/database-spans.md).\n", | |
"note": "`db.system.name` MUST be set to `\"redis\"` and SHOULD be provided **at span creation time**.\n\n**Span name** SHOULD follow the general [database span name convention](/docs/database/database-spans.md#name)\nexcept that `db.namespace` SHOULD NOT be used in the span name since it is a numeric value that ends up\nlooking confusing.\n", | |
"attributes": [ | |
"db.namespace", | |
"db.operation.name", | |
"db.query.text", | |
"db.stored_procedure.name", | |
"network.peer.address", | |
"network.peer.port", | |
"db.response.status_code", | |
"db.operation.batch.size", | |
"server.address", | |
"server.port" | |
] | |
}, | |
{ | |
"id": "span.db.mongodb.client", | |
"type": "span", | |
"stability": "development", | |
"span_kind": "client", | |
"extends": "trace.db.common.minimal", | |
"brief": "Spans representing calls to MongoDB adhere to the general [Semantic Conventions for Database Client Spans](/docs/database/database-spans.md).\n", | |
"note": "`db.system.name` MUST be set to `\"mongodb\"` and SHOULD be provided **at span creation time**.\n**Span name** SHOULD follow the general [database span name convention](/docs/database/database-spans.md#name)\n", | |
"attributes": [ | |
"db.operation.name", | |
"db.collection.name", | |
"db.namespace", | |
"db.response.status_code" | |
] | |
}, | |
{ | |
"id": "span.db.elasticsearch.client", | |
"type": "span", | |
"stability": "development", | |
"span_kind": "client", | |
"extends": "trace.db.common.minimal", | |
"brief": "Spans representing calls to Elasticsearch adhere to the general [Semantic Conventions for Database Client Spans](/docs/database/database-spans.md).\n", | |
"note": "`db.system.name` MUST be set to `\"elasticsearch\"` and SHOULD be provided **at span creation time**.\n\n**Span name** SHOULD follow the general [database span name convention](/docs/database/database-spans.md#name)\nwith the endpoint identifier stored in `db.operation.name`, and the index stored in `db.collection.name`.\n", | |
"attributes": [ | |
"http.request.method", | |
"db.operation.name", | |
"url.full", | |
"db.query.text", | |
"db.collection.name", | |
"db.namespace", | |
"elasticsearch.node.name", | |
"db.operation.parameter", | |
"db.response.status_code" | |
] | |
}, | |
{ | |
"id": "span.db.sql.client", | |
"type": "span", | |
"span_kind": "client", | |
"stability": "stable", | |
"extends": "trace.db.common.query", | |
"brief": "The SQL databases Semantic Conventions describes how common [Database Semantic Conventions](/docs/database/database-spans.md) apply to SQL databases.\n", | |
"note": "The following database systems (defined in the\n[`db.system.name`](/docs/database/database-spans.md#notes-and-well-known-identifiers-for-dbsystemname) set)\nare known to use SQL as their primary query language:\n\n- `actian.ingres`\n- `cockroachdb`\n- `derby`\n- `firebirdsql`\n- `h2database`\n- `hsqldb`\n- `ibm.db2`\n- `mariadb`\n- `microsoft.sql_server`\n- `mysql`\n- `oracle.db`\n- `other_sql`\n- `postgresql`\n- `sap.maxdb`\n- `sqlite`\n- `trino`\n\nMany other database systems support SQL and can be accessed via generic database driver such as JDBC or ODBC.\nInstrumentations applied to generic SQL drivers SHOULD adhere to SQL semantic conventions.\n\n**Span name** SHOULD follow the general [database span name convention](/docs/database/database-spans.md#name)\n", | |
"attributes": [ | |
"db.namespace", | |
"db.response.status_code", | |
"db.stored_procedure.name", | |
"db.operation.name", | |
"db.collection.name", | |
"db.response.returned_rows" | |
] | |
}, | |
{ | |
"id": "span.azure.cosmosdb.client", | |
"type": "span", | |
"stability": "development", | |
"span_kind": "client", | |
"extends": "trace.db.common.minimal", | |
"brief": "Cosmos DB instrumentations include call-level spans that represent logical database calls and adhere to the general [Semantic Conventions for Database Client Spans](/docs/database/database-spans.md).\n", | |
"note": "Additional spans representing network calls may also be created depending on the connection mode (Gateway or Direct).\nSemantic conventions described in this document apply to the call-level spans only.\n\n`db.system.name` MUST be set to `\"azure.cosmosdb\"` and SHOULD be provided **at span creation time**.\n\n**Span name** SHOULD follow the general [database span name convention](/docs/database/database-spans.md#name)\n", | |
"attributes": [ | |
"azure.client.id", | |
"user_agent.original", | |
"azure.cosmosdb.connection.mode", | |
"db.collection.name", | |
"azure.cosmosdb.request.body.size", | |
"db.response.status_code", | |
"db.response.returned_rows", | |
"azure.cosmosdb.response.sub_status_code", | |
"azure.cosmosdb.operation.request_charge", | |
"db.namespace", | |
"az.namespace", | |
"db.operation.name", | |
"db.stored_procedure.name", | |
"server.port", | |
"azure.cosmosdb.consistency.level", | |
"azure.cosmosdb.operation.contacted_regions", | |
"db.query.text", | |
"db.query.parameter" | |
] | |
}, | |
{ | |
"id": "span.db.oracledb.client", | |
"type": "span", | |
"stability": "development", | |
"extends": "span.db.sql.client", | |
"span_kind": "client", | |
"brief": "Spans representing calls to a Oracle SQL Database adhere to the general [Semantic Conventions for Database Client Spans](database-spans.md).\n", | |
"note": "`db.system.name` MUST be set to `\"oracle.db\"` and SHOULD be provided **at span creation time**.\n", | |
"attributes": [ | |
"db.namespace", | |
"db.response.status_code", | |
"db.query.text" | |
] | |
}, | |
{ | |
"id": "registry.deployment.deprecated", | |
"type": "attribute_group", | |
"brief": "\"Describes deprecated deployment attributes.\"\n", | |
"attributes": [ | |
"deployment.environment" | |
] | |
}, | |
{ | |
"id": "registry.deployment", | |
"type": "attribute_group", | |
"display_name": "Deployment Attributes", | |
"brief": "This document defines attributes for software deployments.\n", | |
"attributes": [ | |
"deployment.name", | |
"deployment.id", | |
"deployment.status", | |
"deployment.environment.name" | |
] | |
}, | |
{ | |
"id": "entity.deployment", | |
"type": "entity", | |
"stability": "development", | |
"name": "deployment", | |
"brief": "The software deployment.\n", | |
"attributes": [ | |
"deployment.id" | |
], | |
"descriptive_attributes": [ | |
"deployment.name", | |
"deployment.status" | |
] | |
}, | |
{ | |
"id": "entity.deployment.environment", | |
"type": "entity", | |
"stability": "development", | |
"name": "deployment.environment", | |
"brief": "Name of the [deployment environment](https://wikipedia.org/wiki/Deployment_environment) (aka deployment tier).\n", | |
"attributes": [ | |
"deployment.environment.name" | |
] | |
}, | |
{ | |
"id": "destination", | |
"type": "attribute_group", | |
"brief": "General destination attributes.\n", | |
"attributes": [ | |
"destination.address", | |
"destination.port" | |
] | |
}, | |
{ | |
"id": "registry.destination", | |
"type": "attribute_group", | |
"display_name": "Destination Attributes", | |
"brief": "These attributes may be used to describe the receiver of a network exchange/packet. These should be used when there is no client/server relationship between the two sides, or when that relationship is unknown. This covers low-level network interactions (e.g. packet tracing) where you don't know if there was a connection or which side initiated it. This also covers unidirectional UDP flows and peer-to-peer communication where the \"user-facing\" surface of the protocol / API doesn't expose a clear notion of client and server.\n", | |
"attributes": [ | |
"destination.address", | |
"destination.port" | |
] | |
}, | |
{ | |
"id": "event.device.app.lifecycle", | |
"stability": "development", | |
"type": "event", | |
"name": "device.app.lifecycle", | |
"brief": "This event represents an occurrence of a lifecycle transition on Android or iOS platform.\n", | |
"note": "The event body fields MUST be used to describe the state of the application at the time of the event.\nThis event is meant to be used in conjunction with `os.name` [resource semantic convention](/docs/resource/os.md) to identify the mobile operating system (e.g. Android, iOS).\nThe `android.app.state` and `ios.app.state` fields are mutually exclusive and MUST NOT be used together, each field MUST be used with its corresponding `os.name` value.\n", | |
"attributes": [ | |
"ios.app.state", | |
"android.app.state" | |
] | |
}, | |
{ | |
"id": "registry.device", | |
"type": "attribute_group", | |
"display_name": "Device Attributes", | |
"brief": "Describes device attributes.\n", | |
"attributes": [ | |
"device.id", | |
"device.manufacturer", | |
"device.model.identifier", | |
"device.model.name" | |
] | |
}, | |
{ | |
"id": "resource.device", | |
"type": "resource", | |
"stability": "development", | |
"name": "device", | |
"brief": "The device on which the process represented by this resource is running.\n", | |
"attributes": [ | |
"device.id", | |
"device.manufacturer", | |
"device.model.identifier", | |
"device.model.name" | |
] | |
}, | |
{ | |
"id": "registry.disk", | |
"type": "attribute_group", | |
"display_name": "Disk Attributes", | |
"brief": "These attributes may be used for any disk related operation.\n", | |
"attributes": [ | |
"disk.io.direction" | |
] | |
}, | |
{ | |
"id": "metric.dns.lookup.duration", | |
"type": "metric", | |
"metric_name": "dns.lookup.duration", | |
"stability": "development", | |
"brief": "Measures the time taken to perform a DNS lookup.", | |
"instrument": "histogram", | |
"unit": "s", | |
"attributes": [ | |
"dns.question.name", | |
"error.type" | |
] | |
}, | |
{ | |
"id": "registry.dns", | |
"type": "attribute_group", | |
"display_name": "DNS Attributes", | |
"brief": "This document defines the shared attributes used to report a DNS query.\n", | |
"attributes": [ | |
"dns.question.name" | |
] | |
}, | |
{ | |
"id": "registry.dotnet", | |
"type": "attribute_group", | |
"display_name": ".NET Attributes", | |
"brief": "This document defines .NET related attributes.\n", | |
"attributes": [ | |
"dotnet.gc.heap.generation" | |
] | |
}, | |
{ | |
"id": "metric.dotnet.process.cpu.count", | |
"type": "metric", | |
"metric_name": "dotnet.process.cpu.count", | |
"brief": "The number of processors available to the process.", | |
"note": "Meter name: `System.Runtime`; Added in: .NET 9.0.\nThis metric reports the same values as accessing [`Environment.ProcessorCount`](https://learn.microsoft.com/dotnet/api/system.environment.processorcount).\n", | |
"instrument": "updowncounter", | |
"unit": "{cpu}", | |
"stability": "stable" | |
}, | |
{ | |
"id": "metric.dotnet.process.cpu.time", | |
"type": "metric", | |
"metric_name": "dotnet.process.cpu.time", | |
"brief": "CPU time used by the process.", | |
"note": "Meter name: `System.Runtime`; Added in: .NET 9.0.\nThis metric reports the same values as accessing the corresponding processor time properties on [`System.Diagnostics.Process`](https://learn.microsoft.com/dotnet/api/system.diagnostics.process).\n", | |
"instrument": "counter", | |
"unit": "s", | |
"stability": "stable", | |
"attributes": [ | |
"cpu.mode" | |
] | |
}, | |
{ | |
"id": "metric.dotnet.process.memory.working_set", | |
"type": "metric", | |
"metric_name": "dotnet.process.memory.working_set", | |
"brief": "The number of bytes of physical memory mapped to the process context.", | |
"note": "Meter name: `System.Runtime`; Added in: .NET 9.0.\nThis metric reports the same values as calling [`Environment.WorkingSet`](https://learn.microsoft.com/dotnet/api/system.environment.workingset).\n", | |
"instrument": "updowncounter", | |
"unit": "By", | |
"stability": "stable" | |
}, | |
{ | |
"id": "metric.dotnet.gc.collections", | |
"type": "metric", | |
"metric_name": "dotnet.gc.collections", | |
"brief": "The number of garbage collections that have occurred since the process has started.", | |
"note": "Meter name: `System.Runtime`; Added in: .NET 9.0.\nThis metric uses the [`GC.CollectionCount(int generation)`](https://learn.microsoft.com/dotnet/api/system.gc.collectioncount) API to calculate exclusive collections per generation.\n", | |
"instrument": "counter", | |
"unit": "{collection}", | |
"stability": "stable", | |
"attributes": [ | |
"dotnet.gc.heap.generation" | |
] | |
}, | |
{ | |
"id": "metric.dotnet.gc.heap.total_allocated", | |
"type": "metric", | |
"metric_name": "dotnet.gc.heap.total_allocated", | |
"brief": "The *approximate* number of bytes allocated on the managed GC heap since the process has started. The returned value does not include any native allocations.\n", | |
"note": "Meter name: `System.Runtime`; Added in: .NET 9.0.\nThis metric reports the same values as calling [`GC.GetTotalAllocatedBytes()`](https://learn.microsoft.com/dotnet/api/system.gc.gettotalallocatedbytes).\n", | |
"instrument": "counter", | |
"unit": "By", | |
"stability": "stable" | |
}, | |
{ | |
"id": "metric.dotnet.gc.last_collection.memory.committed_size", | |
"type": "metric", | |
"metric_name": "dotnet.gc.last_collection.memory.committed_size", | |
"brief": "The amount of committed virtual memory in use by the .NET GC, as observed during the latest garbage collection.\n", | |
"note": "Meter name: `System.Runtime`; Added in: .NET 9.0.\nThis metric reports the same values as calling [`GC.GetGCMemoryInfo().TotalCommittedBytes`](https://learn.microsoft.com/dotnet/api/system.gcmemoryinfo.totalcommittedbytes). Committed virtual memory may be larger than the heap size because it includes both memory for storing existing objects (the heap size) and some extra memory that is ready to handle newly allocated objects in the future.\n", | |
"instrument": "updowncounter", | |
"unit": "By", | |
"stability": "stable" | |
}, | |
{ | |
"id": "metric.dotnet.gc.last_collection.heap.size", | |
"type": "metric", | |
"metric_name": "dotnet.gc.last_collection.heap.size", | |
"brief": "The managed GC heap size (including fragmentation), as observed during the latest garbage collection.\n", | |
"note": "Meter name: `System.Runtime`; Added in: .NET 9.0.\nThis metric reports the same values as calling [`GC.GetGCMemoryInfo().GenerationInfo.SizeAfterBytes`](https://learn.microsoft.com/dotnet/api/system.gcgenerationinfo.sizeafterbytes).\n", | |
"instrument": "updowncounter", | |
"unit": "By", | |
"stability": "stable", | |
"attributes": [ | |
"dotnet.gc.heap.generation" | |
] | |
}, | |
{ | |
"id": "metric.dotnet.gc.last_collection.heap.fragmentation.size", | |
"type": "metric", | |
"metric_name": "dotnet.gc.last_collection.heap.fragmentation.size", | |
"brief": "The heap fragmentation, as observed during the latest garbage collection.\n", | |
"note": "Meter name: `System.Runtime`; Added in: .NET 9.0.\nThis metric reports the same values as calling [`GC.GetGCMemoryInfo().GenerationInfo.FragmentationAfterBytes`](https://learn.microsoft.com/dotnet/api/system.gcgenerationinfo.fragmentationafterbytes).\n", | |
"instrument": "updowncounter", | |
"unit": "By", | |
"stability": "stable", | |
"attributes": [ | |
"dotnet.gc.heap.generation" | |
] | |
}, | |
{ | |
"id": "metric.dotnet.gc.pause.time", | |
"type": "metric", | |
"metric_name": "dotnet.gc.pause.time", | |
"brief": "The total amount of time paused in GC since the process has started.", | |
"note": "Meter name: `System.Runtime`; Added in: .NET 9.0.\nThis metric reports the same values as calling [`GC.GetTotalPauseDuration()`](https://learn.microsoft.com/dotnet/api/system.gc.gettotalpauseduration).\n", | |
"instrument": "counter", | |
"unit": "s", | |
"stability": "stable" | |
}, | |
{ | |
"id": "metric.dotnet.jit.compiled_il.size", | |
"type": "metric", | |
"metric_name": "dotnet.jit.compiled_il.size", | |
"brief": "Count of bytes of intermediate language that have been compiled since the process has started.", | |
"note": "Meter name: `System.Runtime`; Added in: .NET 9.0.\nThis metric reports the same values as calling [`JitInfo.GetCompiledILBytes()`](https://learn.microsoft.com/dotnet/api/system.runtime.jitinfo.getcompiledilbytes).\n", | |
"instrument": "counter", | |
"unit": "By", | |
"stability": "stable" | |
}, | |
{ | |
"id": "metric.dotnet.jit.compiled_methods", | |
"type": "metric", | |
"metric_name": "dotnet.jit.compiled_methods", | |
"brief": "The number of times the JIT compiler (re)compiled methods since the process has started.\n", | |
"note": "Meter name: `System.Runtime`; Added in: .NET 9.0.\nThis metric reports the same values as calling [`JitInfo.GetCompiledMethodCount()`](https://learn.microsoft.com/dotnet/api/system.runtime.jitinfo.getcompiledmethodcount).\n", | |
"instrument": "counter", | |
"unit": "{method}", | |
"stability": "stable" | |
}, | |
{ | |
"id": "metric.dotnet.jit.compilation.time", | |
"type": "metric", | |
"metric_name": "dotnet.jit.compilation.time", | |
"brief": "The amount of time the JIT compiler has spent compiling methods since the process has started.\n", | |
"note": "Meter name: `System.Runtime`; Added in: .NET 9.0.\nThis metric reports the same values as calling [`JitInfo.GetCompilationTime()`](https://learn.microsoft.com/dotnet/api/system.runtime.jitinfo.getcompilationtime).\n", | |
"instrument": "counter", | |
"unit": "s", | |
"stability": "stable" | |
}, | |
{ | |
"id": "metric.dotnet.monitor.lock_contentions", | |
"type": "metric", | |
"metric_name": "dotnet.monitor.lock_contentions", | |
"brief": "The number of times there was contention when trying to acquire a monitor lock since the process has started.\n", | |
"note": "Meter name: `System.Runtime`; Added in: .NET 9.0.\nThis metric reports the same values as calling [`Monitor.LockContentionCount`](https://learn.microsoft.com/dotnet/api/system.threading.monitor.lockcontentioncount).\n", | |
"instrument": "counter", | |
"unit": "{contention}", | |
"stability": "stable" | |
}, | |
{ | |
"id": "metric.dotnet.thread_pool.thread.count", | |
"type": "metric", | |
"metric_name": "dotnet.thread_pool.thread.count", | |
"brief": "The number of thread pool threads that currently exist.", | |
"note": "Meter name: `System.Runtime`; Added in: .NET 9.0.\nThis metric reports the same values as calling [`ThreadPool.ThreadCount`](https://learn.microsoft.com/dotnet/api/system.threading.threadpool.threadcount).\n", | |
"instrument": "updowncounter", | |
"unit": "{thread}", | |
"stability": "stable" | |
}, | |
{ | |
"id": "metric.dotnet.thread_pool.work_item.count", | |
"type": "metric", | |
"metric_name": "dotnet.thread_pool.work_item.count", | |
"brief": "The number of work items that the thread pool has completed since the process has started.\n", | |
"note": "Meter name: `System.Runtime`; Added in: .NET 9.0.\nThis metric reports the same values as calling [`ThreadPool.CompletedWorkItemCount`](https://learn.microsoft.com/dotnet/api/system.threading.threadpool.completedworkitemcount).\n", | |
"instrument": "counter", | |
"unit": "{work_item}", | |
"stability": "stable" | |
}, | |
{ | |
"id": "metric.dotnet.thread_pool.queue.length", | |
"type": "metric", | |
"metric_name": "dotnet.thread_pool.queue.length", | |
"brief": "The number of work items that are currently queued to be processed by the thread pool.\n", | |
"note": "Meter name: `System.Runtime`; Added in: .NET 9.0.\nThis metric reports the same values as calling [`ThreadPool.PendingWorkItemCount`](https://learn.microsoft.com/dotnet/api/system.threading.threadpool.pendingworkitemcount).\n", | |
"instrument": "updowncounter", | |
"unit": "{work_item}", | |
"stability": "stable" | |
}, | |
{ | |
"id": "metric.dotnet.timer.count", | |
"type": "metric", | |
"metric_name": "dotnet.timer.count", | |
"brief": "The number of timer instances that are currently active.", | |
"note": "Meter name: `System.Runtime`; Added in: .NET 9.0.\nThis metric reports the same values as calling [`Timer.ActiveCount`](https://learn.microsoft.com/dotnet/api/system.threading.timer.activecount).\n", | |
"instrument": "updowncounter", | |
"unit": "{timer}", | |
"stability": "stable" | |
}, | |
{ | |
"id": "metric.dotnet.assembly.count", | |
"type": "metric", | |
"metric_name": "dotnet.assembly.count", | |
"brief": "The number of .NET assemblies that are currently loaded.", | |
"note": "Meter name: `System.Runtime`; Added in: .NET 9.0.\nThis metric reports the same values as calling [`AppDomain.CurrentDomain.GetAssemblies().Length`](https://learn.microsoft.com/dotnet/api/system.appdomain.getassemblies).\n", | |
"instrument": "updowncounter", | |
"unit": "{assembly}", | |
"stability": "stable" | |
}, | |
{ | |
"id": "metric.dotnet.exceptions", | |
"type": "metric", | |
"metric_name": "dotnet.exceptions", | |
"brief": "The number of exceptions that have been thrown in managed code.", | |
"note": "Meter name: `System.Runtime`; Added in: .NET 9.0.\nThis metric reports the same values as counting calls to [`AppDomain.CurrentDomain.FirstChanceException`](https://learn.microsoft.com/dotnet/api/system.appdomain.firstchanceexception).\n", | |
"instrument": "counter", | |
"unit": "{exception}", | |
"stability": "stable", | |
"attributes": [ | |
"error.type" | |
] | |
}, | |
{ | |
"id": "registry.elasticsearch", | |
"type": "attribute_group", | |
"display_name": "Elasticsearch Attributes", | |
"brief": "This section defines attributes for Elasticsearch.\n", | |
"attributes": [ | |
"elasticsearch.node.name" | |
] | |
}, | |
{ | |
"id": "registry.enduser.deprecated", | |
"type": "attribute_group", | |
"display_name": "Deprecated End User Attributes", | |
"brief": "Describes deprecated enduser attributes.", | |
"attributes": [ | |
"enduser.role", | |
"enduser.scope" | |
] | |
}, | |
{ | |
"id": "registry.enduser", | |
"type": "attribute_group", | |
"display_name": "End User Attributes", | |
"brief": "Describes the end user.\n", | |
"attributes": [ | |
"enduser.id", | |
"enduser.pseudo.id" | |
] | |
}, | |
{ | |
"id": "registry.error", | |
"type": "attribute_group", | |
"display_name": "Error Attributes", | |
"brief": "This document defines the shared attributes used to report an error.\n", | |
"attributes": [ | |
"error.type", | |
"error.message" | |
] | |
}, | |
{ | |
"id": "registry.event.deprecated", | |
"type": "attribute_group", | |
"display_name": "Event Attributes", | |
"brief": "Attributes for Events represented using Log Records.\n", | |
"attributes": [ | |
"event.name" | |
] | |
}, | |
{ | |
"id": "registry.exception.deprecated", | |
"type": "attribute_group", | |
"display_name": "Deprecated Exception Attributes", | |
"brief": "Deprecated exception attributes.\n", | |
"attributes": [ | |
"exception.escaped" | |
] | |
}, | |
{ | |
"id": "event.exception", | |
"name": "exception", | |
"stability": "stable", | |
"type": "event", | |
"brief": "This event describes a single exception.\n", | |
"attributes": [ | |
"exception.type", | |
"exception.message", | |
"exception.stacktrace", | |
"exception.escaped" | |
] | |
}, | |
{ | |
"id": "log-exception", | |
"type": "attribute_group", | |
"brief": "This document defines attributes for exceptions represented using Log Records.\n", | |
"attributes": [ | |
"exception.type", | |
"exception.message", | |
"exception.stacktrace" | |
] | |
}, | |
{ | |
"id": "registry.exception", | |
"type": "attribute_group", | |
"display_name": "Exception Attributes", | |
"brief": "This document defines the shared attributes used to report a single exception associated with a span or log.\n", | |
"attributes": [ | |
"exception.type", | |
"exception.message", | |
"exception.stacktrace" | |
] | |
}, | |
{ | |
"id": "attributes.faas.common", | |
"type": "attribute_group", | |
"brief": "Describes FaaS attributes.", | |
"attributes": [ | |
"faas.trigger", | |
"faas.invoked_name", | |
"faas.invoked_provider", | |
"faas.invoked_region" | |
] | |
}, | |
{ | |
"id": "metric.faas.invoke_duration", | |
"type": "metric", | |
"metric_name": "faas.invoke_duration", | |
"stability": "development", | |
"brief": "Measures the duration of the function's logic execution", | |
"instrument": "histogram", | |
"unit": "s", | |
"attributes": [ | |
"faas.trigger" | |
] | |
}, | |
{ | |
"id": "metric.faas.init_duration", | |
"type": "metric", | |
"metric_name": "faas.init_duration", | |
"stability": "development", | |
"brief": "Measures the duration of the function's initialization, such as a cold start", | |
"instrument": "histogram", | |
"unit": "s", | |
"attributes": [ | |
"faas.trigger" | |
] | |
}, | |
{ | |
"id": "metric.faas.coldstarts", | |
"type": "metric", | |
"metric_name": "faas.coldstarts", | |
"stability": "development", | |
"brief": "Number of invocation cold starts", | |
"instrument": "counter", | |
"unit": "{coldstart}", | |
"attributes": [ | |
"faas.trigger" | |
] | |
}, | |
{ | |
"id": "metric.faas.errors", | |
"type": "metric", | |
"metric_name": "faas.errors", | |
"stability": "development", | |
"brief": "Number of invocation errors", | |
"instrument": "counter", | |
"unit": "{error}", | |
"attributes": [ | |
"faas.trigger" | |
] | |
}, | |
{ | |
"id": "metric.faas.invocations", | |
"type": "metric", | |
"metric_name": "faas.invocations", | |
"stability": "development", | |
"brief": "Number of successful invocations", | |
"instrument": "counter", | |
"unit": "{invocation}", | |
"attributes": [ | |
"faas.trigger" | |
] | |
}, | |
{ | |
"id": "metric.faas.timeouts", | |
"type": "metric", | |
"metric_name": "faas.timeouts", | |
"stability": "development", | |
"brief": "Number of invocation timeouts", | |
"instrument": "counter", | |
"unit": "{timeout}", | |
"attributes": [ | |
"faas.trigger" | |
] | |
}, | |
{ | |
"id": "metric.faas.mem_usage", | |
"type": "metric", | |
"metric_name": "faas.mem_usage", | |
"stability": "development", | |
"brief": "Distribution of max memory usage per invocation", | |
"instrument": "histogram", | |
"unit": "By", | |
"attributes": [ | |
"faas.trigger" | |
] | |
}, | |
{ | |
"id": "metric.faas.cpu_usage", | |
"type": "metric", | |
"metric_name": "faas.cpu_usage", | |
"stability": "development", | |
"brief": "Distribution of CPU usage per invocation", | |
"instrument": "histogram", | |
"unit": "s", | |
"attributes": [ | |
"faas.trigger" | |
] | |
}, | |
{ | |
"id": "metric.faas.net_io", | |
"type": "metric", | |
"metric_name": "faas.net_io", | |
"stability": "development", | |
"brief": "Distribution of net I/O usage per invocation", | |
"instrument": "histogram", | |
"unit": "By", | |
"attributes": [ | |
"faas.trigger" | |
] | |
}, | |
{ | |
"id": "registry.faas", | |
"brief": "FaaS attributes", | |
"type": "attribute_group", | |
"display_name": "Function as a Service Attributes", | |
"attributes": [ | |
"faas.name", | |
"faas.version", | |
"faas.instance", | |
"faas.max_memory", | |
"faas.trigger", | |
"faas.invoked_name", | |
"faas.invoked_provider", | |
"faas.invoked_region", | |
"faas.invocation_id", | |
"faas.time", | |
"faas.cron", | |
"faas.coldstart", | |
"faas.document.collection", | |
"faas.document.operation", | |
"faas.document.time", | |
"faas.document.name" | |
] | |
}, | |
{ | |
"id": "resource.faas", | |
"type": "resource", | |
"stability": "development", | |
"name": "faas", | |
"brief": "A serverless instance.\n", | |
"attributes": [ | |
"faas.name", | |
"faas.version", | |
"faas.instance", | |
"faas.max_memory", | |
"cloud.resource_id" | |
] | |
}, | |
{ | |
"id": "faas.attributes", | |
"type": "attribute_group", | |
"stability": "development", | |
"brief": "This span represents a serverless function (FaaS) execution.\n", | |
"note": "Span `name` should be set to the function name being executed.\nDepending on the value of the `faas.trigger` attribute, additional attributes MUST be set.\n\nFor example, an `http` trigger SHOULD follow the [HTTP Server semantic conventions](/docs/http/http-spans.md#http-server-span).\nFor more information, refer to the [Function Trigger Type](#function-trigger-type) section.\n\nIf Spans following this convention are produced, a Resource of type `faas` MUST exist following the [Resource semantic convention](/docs/resource/faas.md).\n", | |
"attributes": [ | |
"faas.trigger", | |
"faas.invocation_id", | |
"cloud.resource_id" | |
] | |
}, | |
{ | |
"id": "span.faas.datasource.server", | |
"type": "span", | |
"span_kind": "server", | |
"stability": "development", | |
"brief": "This span represents server side if the FaaS invocations triggered in response response to some data source operation such as a database or filesystem read/write.\n", | |
"attributes": [ | |
"faas.document.collection", | |
"faas.document.operation", | |
"faas.document.time", | |
"faas.document.name" | |
] | |
}, | |
{ | |
"id": "span.faas.timer.server", | |
"type": "span", | |
"span_kind": "server", | |
"stability": "development", | |
"brief": "This span represents server side if the FaaS invocations triggered by a timer.\n", | |
"attributes": [ | |
"faas.time", | |
"faas.cron" | |
] | |
}, | |
{ | |
"id": "span.faas.server", | |
"span_kind": "server", | |
"type": "span", | |
"stability": "development", | |
"brief": "This span represents server (incoming) side of the FaaS invocation.\n", | |
"attributes": [ | |
"faas.coldstart", | |
"faas.trigger" | |
] | |
}, | |
{ | |
"id": "span.faas.client", | |
"span_kind": "client", | |
"type": "span", | |
"stability": "development", | |
"brief": "This span represents an outgoing call to a FaaS service.\n", | |
"note": "The values reported by the client for the attributes listed below SHOULD be equal to\nthe corresponding [FaaS resource attributes][] and [Cloud resource attributes][],\nwhich the invoked FaaS instance reports about itself, if it's instrumented.\n", | |
"attributes": [ | |
"faas.invoked_name", | |
"faas.invoked_provider", | |
"faas.invoked_region" | |
] | |
}, | |
{ | |
"id": "registry.feature_flag.deprecated", | |
"type": "attribute_group", | |
"display_name": "Deprecated Feature Flag Attributes", | |
"brief": "Describes deprecated feature flag attributes.", | |
"attributes": [ | |
"feature_flag.provider_name", | |
"feature_flag.evaluation.reason", | |
"feature_flag.variant", | |
"feature_flag.evaluation.error.message" | |
] | |
}, | |
{ | |
"id": "event.feature_flag.evaluation", | |
"type": "event", | |
"name": "feature_flag.evaluation", | |
"stability": "development", | |
"brief": "Defines feature flag evaluation as an event.\n", | |
"note": "A `feature_flag.evaluation` event SHOULD be emitted whenever a feature flag value is evaluated, which may happen many times over the course of an application lifecycle. For example, a website A/B testing different animations may evaluate a flag each time a button is clicked. A `feature_flag.evaluation` event is emitted on each evaluation even if the result is the same.\n", | |
"attributes": [ | |
"feature_flag.key", | |
"feature_flag.result.variant", | |
"feature_flag.provider.name", | |
"feature_flag.context.id", | |
"feature_flag.version", | |
"feature_flag.set.id", | |
"feature_flag.result.reason", | |
"error.type", | |
"error.message" | |
], | |
"body": { | |
"id": "feature_flag.evaluation", | |
"type": "map", | |
"requirement_level": "recommended", | |
"stability": "development", | |
"fields": [ | |
{ | |
"id": "value", | |
"type": "undefined", | |
"stability": "development", | |
"brief": "The evaluated value of the feature flag.", | |
"requirement_level": { | |
"conditionally_required": "If and only if feature flag provider does not supply variant or equivalent concept. Otherwise, `value` should be treated as opt-in.\n" | |
}, | |
"examples": [ | |
"#ff0000", | |
"1", | |
"true" | |
] | |
} | |
] | |
} | |
}, | |
{ | |
"id": "registry.feature_flag", | |
"type": "attribute_group", | |
"stability": "development", | |
"display_name": "Feature Flag Attributes", | |
"brief": "This document defines attributes for Feature Flags.\n", | |
"attributes": [ | |
"feature_flag.key", | |
"feature_flag.provider.name", | |
"feature_flag.result.variant", | |
"feature_flag.context.id", | |
"feature_flag.version", | |
"feature_flag.set.id", | |
"feature_flag.result.reason" | |
] | |
}, | |
{ | |
"id": "registry.file", | |
"type": "attribute_group", | |
"display_name": "File Attributes", | |
"brief": "Describes file attributes.", | |
"attributes": [ | |
"file.accessed", | |
"file.attributes", | |
"file.created", | |
"file.changed", | |
"file.directory", | |
"file.extension", | |
"file.fork_name", | |
"file.group.id", | |
"file.group.name", | |
"file.inode", | |
"file.mode", | |
"file.modified", | |
"file.name", | |
"file.owner.id", | |
"file.owner.name", | |
"file.path", | |
"file.size", | |
"file.symbolic_link.target_path" | |
] | |
}, | |
{ | |
"id": "resource.gcp.apphub.application", | |
"type": "resource", | |
"stability": "development", | |
"name": "gcp.apphub.application", | |
"brief": "Attributes denoting data from an Application in AppHub. See [AppHub overview](https://cloud.google.com/app-hub/docs/overview).\n", | |
"attributes": [ | |
"gcp.apphub.application.container", | |
"gcp.apphub.application.location", | |
"gcp.apphub.application.id" | |
] | |
}, | |
{ | |
"id": "resource.gcp.apphub.service", | |
"type": "resource", | |
"stability": "development", | |
"name": "gcp.apphub.service", | |
"brief": "Attributes denoting data from a Service in AppHub. See [AppHub overview](https://cloud.google.com/app-hub/docs/overview).\n", | |
"attributes": [ | |
"gcp.apphub.service.id", | |
"gcp.apphub.service.environment_type", | |
"gcp.apphub.service.criticality_type" | |
] | |
}, | |
{ | |
"id": "resource.gcp.apphub.workload", | |
"type": "resource", | |
"stability": "development", | |
"name": "gcp.apphub.workload", | |
"brief": "Attributes denoting data from a Workload in AppHub. See [AppHub overview](https://cloud.google.com/app-hub/docs/overview).\n", | |
"attributes": [ | |
"gcp.apphub.workload.id", | |
"gcp.apphub.workload.environment_type", | |
"gcp.apphub.workload.criticality_type" | |
] | |
}, | |
{ | |
"id": "resource.gcp.cloud_run", | |
"type": "resource", | |
"stability": "development", | |
"name": "gcp.cloud_run", | |
"brief": "Resource used by Google Cloud Run.\n", | |
"attributes": [ | |
"gcp.cloud_run.job.execution", | |
"gcp.cloud_run.job.task_index" | |
] | |
}, | |
{ | |
"id": "resource.gcp.gce", | |
"type": "resource", | |
"stability": "development", | |
"name": "gcp.gce", | |
"brief": "Resources used by Google Compute Engine (GCE).\n", | |
"attributes": [ | |
"gcp.gce.instance.name", | |
"gcp.gce.instance.hostname" | |
] | |
}, | |
{ | |
"id": "registry.gcp.client", | |
"type": "attribute_group", | |
"display_name": "GCP Client Attributes", | |
"brief": "Attributes for Google Cloud client libraries.\n", | |
"attributes": [ | |
"gcp.client.service" | |
] | |
}, | |
{ | |
"id": "registry.gcp.cloud_run", | |
"type": "attribute_group", | |
"display_name": "GCP - Google Cloud Run Attributes", | |
"brief": "This document defines attributes for Google Cloud Run.\n", | |
"attributes": [ | |
"gcp.cloud_run.job.execution", | |
"gcp.cloud_run.job.task_index" | |
] | |
}, | |
{ | |
"id": "registry.gcp.apphub", | |
"type": "attribute_group", | |
"display_name": "GCP - AppHub Attributes", | |
"brief": "This document defines attributes AppHub will apply to resources in GCP. See [AppHub overview](https://cloud.google.com/app-hub/docs/overview).\n", | |
"attributes": [ | |
"gcp.apphub.application.container", | |
"gcp.apphub.application.location", | |
"gcp.apphub.application.id", | |
"gcp.apphub.service.id", | |
"gcp.apphub.service.environment_type", | |
"gcp.apphub.service.criticality_type", | |
"gcp.apphub.workload.id", | |
"gcp.apphub.workload.environment_type", | |
"gcp.apphub.workload.criticality_type" | |
] | |
}, | |
{ | |
"id": "registry.gcp.gce", | |
"type": "attribute_group", | |
"display_name": "GCP - Google Compute Engine (GCE) Attributes", | |
"brief": "This document defines attributes for Google Compute Engine (GCE).\n", | |
"attributes": [ | |
"gcp.gce.instance.name", | |
"gcp.gce.instance.hostname" | |
] | |
}, | |
{ | |
"id": "registry.gen_ai.deprecated", | |
"type": "attribute_group", | |
"brief": "Describes deprecated `gen_ai` attributes.", | |
"display_name": "Deprecated GenAI Attributes", | |
"attributes": [ | |
"gen_ai.usage.prompt_tokens", | |
"gen_ai.usage.completion_tokens", | |
"gen_ai.prompt", | |
"gen_ai.completion" | |
] | |
}, | |
{ | |
"id": "registry.gen_ai.openai.deprecated", | |
"type": "attribute_group", | |
"brief": "Describes deprecated `gen_ai.openai` attributes.", | |
"display_name": "Deprecated OpenAI GenAI Attributes", | |
"attributes": [ | |
"gen_ai.openai.request.seed", | |
"gen_ai.openai.request.response_format" | |
] | |
}, | |
{ | |
"id": "gen_ai.common.event.attributes", | |
"type": "attribute_group", | |
"stability": "development", | |
"brief": "Describes common Gen AI event attributes.\n", | |
"attributes": [ | |
"gen_ai.system" | |
] | |
}, | |
{ | |
"id": "event.gen_ai.system.message", | |
"name": "gen_ai.system.message", | |
"type": "event", | |
"stability": "development", | |
"brief": "This event describes the system instructions passed to the GenAI model.\n", | |
"extends": "gen_ai.common.event.attributes", | |
"body": { | |
"id": "gen_ai.system.message", | |
"requirement_level": "opt_in", | |
"stability": "development", | |
"type": "map", | |
"fields": [ | |
{ | |
"id": "content", | |
"type": "undefined", | |
"stability": "development", | |
"brief": "The contents of the system message.\n", | |
"examples": [ | |
"You're a helpful bot" | |
], | |
"requirement_level": "opt_in" | |
}, | |
{ | |
"id": "role", | |
"type": "string", | |
"stability": "development", | |
"brief": "The actual role of the message author as passed in the message.\n", | |
"examples": [ | |
"system", | |
"instruction" | |
], | |
"requirement_level": { | |
"conditionally_required": "if available and not equal to `system`." | |
} | |
} | |
] | |
} | |
}, | |
{ | |
"id": "event.gen_ai.user.message", | |
"name": "gen_ai.user.message", | |
"type": "event", | |
"stability": "development", | |
"brief": "This event describes the user message passed to the GenAI model.\n", | |
"extends": "gen_ai.common.event.attributes", | |
"body": { | |
"id": "gen_ai.user.message", | |
"requirement_level": "opt_in", | |
"stability": "development", | |
"type": "map", | |
"fields": [ | |
{ | |
"id": "content", | |
"type": "undefined", | |
"stability": "development", | |
"brief": "The contents of the user message.\n", | |
"examples": [ | |
"What's the weather in Paris?" | |
], | |
"requirement_level": "opt_in" | |
}, | |
{ | |
"id": "role", | |
"type": "string", | |
"stability": "development", | |
"brief": "The actual role of the message author as passed in the message.\n", | |
"examples": [ | |
"user", | |
"customer" | |
], | |
"requirement_level": { | |
"conditionally_required": "if available and not equal to `user`." | |
} | |
} | |
] | |
} | |
}, | |
{ | |
"id": "event.gen_ai.assistant.message", | |
"name": "gen_ai.assistant.message", | |
"type": "event", | |
"stability": "development", | |
"brief": "This event describes the assistant message passed to GenAI system.\n", | |
"extends": "gen_ai.common.event.attributes", | |
"body": { | |
"id": "gen_ai.assistant.message", | |
"requirement_level": "opt_in", | |
"stability": "development", | |
"type": "map", | |
"fields": [ | |
{ | |
"id": "content", | |
"type": "undefined", | |
"stability": "development", | |
"brief": "The contents of the tool message.\n", | |
"examples": [ | |
"The weather in Paris is rainy and overcast, with temperatures around 57°F" | |
], | |
"requirement_level": "opt_in" | |
}, | |
{ | |
"id": "role", | |
"type": "string", | |
"stability": "development", | |
"brief": "The actual role of the message author as passed in the message.\n", | |
"examples": [ | |
"assistant", | |
"bot" | |
], | |
"requirement_level": { | |
"conditionally_required": "if available and not equal to `assistant`." | |
} | |
}, | |
{ | |
"id": "tool_calls", | |
"type": "map[]", | |
"stability": "development", | |
"brief": "The tool calls generated by the model, such as function calls.\n", | |
"requirement_level": { | |
"conditionally_required": "if available" | |
}, | |
"fields": [ | |
{ | |
"id": "id", | |
"type": "string", | |
"stability": "development", | |
"brief": "The id of the tool call.\n", | |
"examples": [ | |
"call_mszuSIzqtI65i1wAUOE8w5H4" | |
], | |
"requirement_level": "required" | |
}, | |
{ | |
"id": "type", | |
"type": "enum", | |
"members": [ | |
{ | |
"id": "function", | |
"value": "function", | |
"brief": "Function", | |
"stability": "development" | |
} | |
], | |
"stability": "development", | |
"brief": "The type of the tool.\n", | |
"examples": [ | |
"function" | |
], | |
"requirement_level": "required" | |
}, | |
{ | |
"id": "function", | |
"type": "map", | |
"stability": "development", | |
"brief": "The function call.\n", | |
"requirement_level": "required", | |
"fields": [ | |
{ | |
"id": "name", | |
"type": "string", | |
"stability": "development", | |
"brief": "The name of the function.\n", | |
"examples": [ | |
"get_weather" | |
], | |
"requirement_level": "required" | |
}, | |
{ | |
"id": "arguments", | |
"type": "undefined", | |
"stability": "development", | |
"brief": "The arguments of the function as provided in the LLM response.\n", | |
"note": "Models usually return arguments as a JSON string. In this case, it's RECOMMENDED to provide arguments as is without attempting to deserialize them.\nSemantic conventions for individual systems MAY specify a different type for arguments field.\n", | |
"examples": [ | |
"{\\\"location\\\": \\\"Paris\\\"}" | |
], | |
"requirement_level": "opt_in" | |
} | |
] | |
} | |
] | |
} | |
] | |
} | |
}, | |
{ | |
"id": "event.gen_ai.tool.message", | |
"name": "gen_ai.tool.message", | |
"type": "event", | |
"stability": "development", | |
"brief": "This event describes the response from a tool or function call passed to the GenAI model.\n", | |
"extends": "gen_ai.common.event.attributes", | |
"body": { | |
"id": "gen_ai.tool.message", | |
"requirement_level": "opt_in", | |
"stability": "development", | |
"type": "map", | |
"fields": [ | |
{ | |
"id": "content", | |
"type": "undefined", | |
"stability": "development", | |
"brief": "The contents of the tool message.\n", | |
"examples": [ | |
"rainy, 57°F" | |
], | |
"requirement_level": "opt_in" | |
}, | |
{ | |
"id": "role", | |
"type": "string", | |
"stability": "development", | |
"brief": "The actual role of the message author as passed in the message.\n", | |
"examples": [ | |
"tool", | |
"function" | |
], | |
"requirement_level": { | |
"conditionally_required": "if available and not equal to `tool`." | |
} | |
}, | |
{ | |
"id": "id", | |
"type": "string", | |
"stability": "development", | |
"brief": "Tool call id that this message is responding to.\n", | |
"examples": [ | |
"call_mszuSIzqtI65i1wAUOE8w5H4" | |
], | |
"requirement_level": "required" | |
} | |
] | |
} | |
}, | |
{ | |
"id": "event.gen_ai.choice", | |
"name": "gen_ai.choice", | |
"type": "event", | |
"stability": "development", | |
"brief": "This event describes the Gen AI response message.\n", | |
"extends": "gen_ai.common.event.attributes", | |
"body": { | |
"id": "gen_ai.choice", | |
"requirement_level": "opt_in", | |
"stability": "development", | |
"type": "map", | |
"note": "If GenAI model returns multiple choices, each choice SHOULD be recorded as an individual event. When response is streamed, instrumentations that report response events MUST reconstruct and report the full message and MUST NOT report individual chunks as events. If the request to GenAI model fails with an error before content is received, instrumentation SHOULD report an event with truncated content (if enabled). If `finish_reason` was not received, it MUST be set to `error`.\n", | |
"fields": [ | |
{ | |
"id": "index", | |
"type": "int", | |
"stability": "development", | |
"brief": "The index of the choice in the list of choices.\n", | |
"examples": [ | |
0, | |
1 | |
], | |
"requirement_level": "required" | |
}, | |
{ | |
"id": "finish_reason", | |
"type": "enum", | |
"members": [ | |
{ | |
"id": "stop", | |
"value": "stop", | |
"stability": "development", | |
"brief": "Stop" | |
}, | |
{ | |
"id": "tool_calls", | |
"value": "tool_calls", | |
"stability": "development", | |
"brief": "Tool Calls" | |
}, | |
{ | |
"id": "content_filter", | |
"value": "content_filter", | |
"stability": "development", | |
"brief": "Content Filter" | |
}, | |
{ | |
"id": "length", | |
"value": "length", | |
"stability": "development", | |
"brief": "Length" | |
}, | |
{ | |
"id": "error", | |
"value": "error", | |
"stability": "development", | |
"brief": "Error" | |
} | |
], | |
"stability": "development", | |
"brief": "The reason the model stopped generating tokens.\n", | |
"requirement_level": "required" | |
}, | |
{ | |
"id": "message", | |
"type": "map", | |
"stability": "development", | |
"brief": "GenAI response message.\n", | |
"requirement_level": "recommended", | |
"fields": [ | |
{ | |
"id": "content", | |
"type": "undefined", | |
"stability": "development", | |
"brief": "The contents of the assistant message.\n", | |
"examples": [ | |
"The weather in Paris is rainy and overcast, with temperatures around 57°F" | |
], | |
"requirement_level": "opt_in" | |
}, | |
{ | |
"id": "role", | |
"type": "string", | |
"stability": "development", | |
"brief": "The actual role of the message author as passed in the message.\n", | |
"examples": [ | |
"assistant", | |
"bot" | |
], | |
"requirement_level": { | |
"conditionally_required": "if available and not equal to `assistant`." | |
} | |
} | |
] | |
}, | |
{ | |
"id": "tool_calls", | |
"type": "map[]", | |
"stability": "development", | |
"brief": "The tool calls generated by the model, such as function calls.\n", | |
"requirement_level": { | |
"conditionally_required": "if available" | |
}, | |
"fields": [ | |
{ | |
"id": "id", | |
"type": "string", | |
"stability": "development", | |
"brief": "The id of the tool call.\n", | |
"examples": [ | |
"call_mszuSIzqtI65i1wAUOE8w5H4" | |
], | |
"requirement_level": "required" | |
}, | |
{ | |
"id": "type", | |
"type": "enum", | |
"members": [ | |
{ | |
"id": "function", | |
"value": "function", | |
"brief": "Function", | |
"stability": "development" | |
} | |
], | |
"stability": "development", | |
"brief": "The type of the tool.\n", | |
"requirement_level": "required" | |
}, | |
{ | |
"id": "function", | |
"type": "map", | |
"stability": "development", | |
"brief": "The function that the model called.\n", | |
"requirement_level": "required", | |
"fields": [ | |
{ | |
"id": "name", | |
"type": "string", | |
"stability": "development", | |
"brief": "The name of the function.\n", | |
"examples": [ | |
"get_weather" | |
], | |
"requirement_level": "required" | |
}, | |
{ | |
"id": "arguments", | |
"type": "undefined", | |
"stability": "development", | |
"brief": "The arguments of the function as provided in the LLM response.\n", | |
"note": "Models usually return arguments as a JSON string. In this case, it's RECOMMENDED to provide arguments as is without attempting to deserialize them.\nSemantic conventions for individual systems MAY specify a different type for arguments field.\n", | |
"examples": [ | |
"{\\\"location\\\": \\\"Paris\\\"}" | |
], | |
"requirement_level": "opt_in" | |
} | |
] | |
} | |
] | |
} | |
] | |
} | |
}, | |
{ | |
"id": "metric_attributes.gen_ai", | |
"type": "attribute_group", | |
"brief": "This group describes GenAI metrics attributes", | |
"attributes": [ | |
"server.address", | |
"server.port", | |
"gen_ai.response.model", | |
"gen_ai.request.model", | |
"gen_ai.system", | |
"gen_ai.operation.name" | |
] | |
}, | |
{ | |
"id": "metric_attributes.gen_ai.server", | |
"type": "attribute_group", | |
"brief": "This group describes GenAI server metrics attributes", | |
"extends": "metric_attributes.gen_ai", | |
"attributes": [ | |
"error.type" | |
] | |
}, | |
{ | |
"id": "metric_attributes.gen_ai.openai", | |
"type": "attribute_group", | |
"brief": "This group describes GenAI server metrics attributes", | |
"attributes": [ | |
"gen_ai.openai.response.service_tier", | |
"gen_ai.openai.response.system_fingerprint" | |
] | |
}, | |
{ | |
"id": "metric.gen_ai.client.token.usage", | |
"type": "metric", | |
"metric_name": "gen_ai.client.token.usage", | |
"brief": "Measures number of input and output tokens used", | |
"instrument": "histogram", | |
"unit": "{token}", | |
"stability": "development", | |
"extends": "metric_attributes.gen_ai", | |
"attributes": [ | |
"gen_ai.token.type" | |
] | |
}, | |
{ | |
"id": "metric.gen_ai.client.operation.duration", | |
"type": "metric", | |
"metric_name": "gen_ai.client.operation.duration", | |
"brief": "GenAI operation duration", | |
"instrument": "histogram", | |
"unit": "s", | |
"stability": "development", | |
"extends": "metric_attributes.gen_ai", | |
"attributes": [ | |
"error.type" | |
] | |
}, | |
{ | |
"id": "metric.gen_ai.server.request.duration", | |
"type": "metric", | |
"metric_name": "gen_ai.server.request.duration", | |
"brief": "Generative AI server request duration such as time-to-last byte or last output token", | |
"instrument": "histogram", | |
"unit": "s", | |
"stability": "development", | |
"extends": "metric_attributes.gen_ai.server" | |
}, | |
{ | |
"id": "metric.gen_ai.server.time_per_output_token", | |
"type": "metric", | |
"metric_name": "gen_ai.server.time_per_output_token", | |
"brief": "Time per output token generated after the first token for successful responses", | |
"instrument": "histogram", | |
"unit": "s", | |
"stability": "development", | |
"extends": "metric_attributes.gen_ai" | |
}, | |
{ | |
"id": "metric.gen_ai.server.time_to_first_token", | |
"type": "metric", | |
"metric_name": "gen_ai.server.time_to_first_token", | |
"brief": "Time to generate first token for successful responses", | |
"instrument": "histogram", | |
"unit": "s", | |
"stability": "development", | |
"extends": "metric_attributes.gen_ai" | |
}, | |
{ | |
"id": "registry.gen_ai", | |
"type": "attribute_group", | |
"display_name": "GenAI Attributes", | |
"brief": "This document defines the attributes used to describe telemetry in the context of Generative Artificial Intelligence (GenAI) Models requests and responses.\n", | |
"attributes": [ | |
"gen_ai.system", | |
"gen_ai.request.model", | |
"gen_ai.request.max_tokens", | |
"gen_ai.request.choice.count", | |
"gen_ai.request.temperature", | |
"gen_ai.request.top_p", | |
"gen_ai.request.top_k", | |
"gen_ai.request.stop_sequences", | |
"gen_ai.request.frequency_penalty", | |
"gen_ai.request.presence_penalty", | |
"gen_ai.request.encoding_formats", | |
"gen_ai.request.seed", | |
"gen_ai.response.id", | |
"gen_ai.response.model", | |
"gen_ai.response.finish_reasons", | |
"gen_ai.usage.input_tokens", | |
"gen_ai.usage.output_tokens", | |
"gen_ai.token.type", | |
"gen_ai.agent.id", | |
"gen_ai.agent.name", | |
"gen_ai.agent.description", | |
"gen_ai.tool.name", | |
"gen_ai.tool.call.id", | |
"gen_ai.tool.description", | |
"gen_ai.tool.type", | |
"gen_ai.operation.name", | |
"gen_ai.output.type" | |
] | |
}, | |
{ | |
"id": "registry.gen_ai.openai", | |
"type": "attribute_group", | |
"display_name": "OpenAI Attributes", | |
"brief": "This group defines attributes for OpenAI.\n", | |
"attributes": [ | |
"gen_ai.openai.request.service_tier", | |
"gen_ai.openai.response.service_tier", | |
"gen_ai.openai.response.system_fingerprint" | |
] | |
}, | |
{ | |
"id": "attributes.gen_ai.common.client", | |
"type": "attribute_group", | |
"stability": "development", | |
"brief": "Common attributes for all GenAI spans.\n", | |
"attributes": [ | |
"gen_ai.request.model", | |
"gen_ai.operation.name", | |
"server.address", | |
"server.port", | |
"error.type" | |
] | |
}, | |
{ | |
"id": "attributes.gen_ai.inference.client", | |
"type": "attribute_group", | |
"stability": "development", | |
"brief": "Describes GenAI inference attributes.\n", | |
"extends": "attributes.gen_ai.common.client", | |
"attributes": [ | |
"gen_ai.request.max_tokens", | |
"gen_ai.request.choice.count", | |
"gen_ai.request.temperature", | |
"gen_ai.request.top_p", | |
"gen_ai.request.stop_sequences", | |
"gen_ai.request.frequency_penalty", | |
"gen_ai.request.presence_penalty", | |
"gen_ai.request.seed", | |
"gen_ai.output.type", | |
"gen_ai.response.id", | |
"gen_ai.response.model", | |
"gen_ai.response.finish_reasons", | |
"gen_ai.usage.input_tokens", | |
"gen_ai.usage.output_tokens" | |
] | |
}, | |
{ | |
"id": "span.gen_ai.inference.client", | |
"type": "span", | |
"stability": "development", | |
"span_kind": "client", | |
"brief": "This span represents a client call to Generative AI model or service that generates a response or requests a tool call based on the input prompt.\n", | |
"note": "**Span name** SHOULD be `{gen_ai.operation.name} {gen_ai.request.model}`.\nSemantic conventions for individual GenAI systems and frameworks MAY specify different span name format\nand MUST follow the overall [guidelines for span names](https://github.com/open-telemetry/opentelemetry-specification/tree/v1.37.0/specification/trace/api.md#span).\n\n**Span kind** SHOULD be `CLIENT`and MAY be set to `INTERNAL` on spans representing\ncall to models running in the same process. It's RECOMMENDED to use `CLIENT` kind\nwhen the GenAI system being instrumented usually runs in a different process than its\nclient or when the GenAI call happens over instrumented protocol such as HTTP.\n", | |
"extends": "attributes.gen_ai.inference.client", | |
"attributes": [ | |
"gen_ai.system", | |
"gen_ai.request.top_k" | |
] | |
}, | |
{ | |
"id": "attributes.gen_ai.inference.openai_based", | |
"extends": "attributes.gen_ai.inference.client", | |
"type": "attribute_group", | |
"stability": "development", | |
"brief": "Describes attributes that are common to OpenAI-based Generative AI services.\n", | |
"attributes": [ | |
"gen_ai.output.type" | |
] | |
}, | |
{ | |
"id": "span.gen_ai.openai.inference.client", | |
"extends": "attributes.gen_ai.inference.openai_based", | |
"stability": "development", | |
"span_kind": "client", | |
"type": "span", | |
"brief": "Semantic Conventions for [OpenAI](https://openai.com/) client spans extend and override the semantic conventions for [Gen AI Spans](gen-ai-spans.md).\n", | |
"note": "`gen_ai.system` MUST be set to `\"openai\"` and SHOULD be provided **at span creation time**.\n\n**Span name** SHOULD be `{gen_ai.operation.name} {gen_ai.request.model}`.\n", | |
"attributes": [ | |
"gen_ai.request.model", | |
"gen_ai.openai.request.service_tier", | |
"gen_ai.openai.response.service_tier", | |
"gen_ai.openai.response.system_fingerprint", | |
"gen_ai.usage.input_tokens", | |
"gen_ai.usage.output_tokens" | |
] | |
}, | |
{ | |
"id": "span.gen_ai.az.ai.inference.client", | |
"extends": "attributes.gen_ai.inference.openai_based", | |
"stability": "development", | |
"type": "span", | |
"span_kind": "client", | |
"brief": "Semantic Conventions for [Azure AI Inference](https://learn.microsoft.com/azure/ai-studio/reference/reference-model-inference-api) client spans extend and override the semantic conventions for [Gen AI Spans](gen-ai-spans.md).\n", | |
"note": "`gen_ai.system` MUST be set to `\"az.ai.inference\"` and SHOULD be provided **at span creation time**.\n\n**Span name** SHOULD be `{gen_ai.operation.name} {gen_ai.request.model}` when the\nmodel name is available and `{gen_ai.operation.name}` otherwise.\n", | |
"attributes": [ | |
"az.namespace", | |
"gen_ai.usage.input_tokens", | |
"gen_ai.usage.output_tokens", | |
"server.port" | |
] | |
}, | |
{ | |
"id": "span.gen_ai.embeddings.client", | |
"type": "span", | |
"span_kind": "client", | |
"stability": "development", | |
"brief": "Describes GenAI embeddings span - a request to a Generative AI model or service that generates an embeddings based on the input.\nThe `gen_ai.operation.name` SHOULD be `embeddings`.\n**Span name** SHOULD be `{gen_ai.operation.name} {gen_ai.request.model}`.\n", | |
"extends": "attributes.gen_ai.common.client", | |
"attributes": [ | |
"gen_ai.request.encoding_formats", | |
"gen_ai.usage.input_tokens" | |
] | |
}, | |
{ | |
"id": "span.gen_ai.create_agent.client", | |
"type": "span", | |
"stability": "development", | |
"span_kind": "client", | |
"brief": "Describes GenAI agent creation and is usually applicable when working with remote agent services.\n", | |
"note": "The `gen_ai.operation.name` SHOULD be `create_agent`.\n\n**Span name** SHOULD be `create_agent {gen_ai.agent.name}`.\nSemantic conventions for individual GenAI systems and frameworks MAY specify different span name format.\n", | |
"extends": "attributes.gen_ai.common.client", | |
"attributes": [ | |
"gen_ai.system", | |
"gen_ai.agent.id", | |
"gen_ai.agent.name", | |
"gen_ai.agent.description" | |
] | |
}, | |
{ | |
"id": "span.gen_ai.invoke_agent.client", | |
"type": "span", | |
"stability": "development", | |
"span_kind": "client", | |
"brief": "Describes GenAI agent invocation and is usually applicable when working with remote agent services.\n", | |
"note": "The `gen_ai.operation.name` SHOULD be `invoke_agent`.\nThe **span name** SHOULD be `invoke_agent {gen_ai.agent.name}` if `gen_ai.agent.name` is readily available.\nWhen `gen_ai.agent.name` is not available, it SHOULD be `invoke_agent`.\nSemantic conventions for individual GenAI systems and frameworks MAY specify different span name format.\n", | |
"extends": "attributes.gen_ai.inference.client", | |
"attributes": [ | |
"gen_ai.system", | |
"gen_ai.agent.id", | |
"gen_ai.agent.name", | |
"gen_ai.agent.description" | |
] | |
}, | |
{ | |
"id": "span.gen_ai.execute_tool.internal", | |
"type": "span", | |
"stability": "development", | |
"span_kind": "internal", | |
"brief": "Describes tool execution span.", | |
"note": "`gen_ai.operation.name` SHOULD be `execute_tool`.\n\n**Span name** SHOULD be `execute_tool {gen_ai.tool.name}`.\n\nGenAI instrumentations that are able to instrument tool execution call SHOULD do so.\nHowever, it's common for tools to be executed by the application code. It's recommended\nfor the application developers to follow this semantic convention for tools invoked\nby the application code.\n", | |
"attributes": [ | |
"gen_ai.tool.name", | |
"gen_ai.tool.call.id", | |
"gen_ai.tool.description", | |
"error.type" | |
] | |
}, | |
{ | |
"id": "registry.geo", | |
"type": "attribute_group", | |
"brief": "Geo fields can carry data about a specific location related to an event. This geolocation information can be derived from techniques such as Geo IP, or be user-supplied.\nNote: Geo attributes are typically used under another namespace, such as client.* and describe the location of the corresponding entity (device, end-user, etc). Semantic conventions that reference geo attributes (as a root namespace) or embed them (under their own namespace) SHOULD document what geo attributes describe in the scope of that convention.\n", | |
"attributes": [ | |
"geo.locality.name", | |
"geo.continent.code", | |
"geo.country.iso_code", | |
"geo.location.lon", | |
"geo.location.lat", | |
"geo.postal_code", | |
"geo.region.iso_code" | |
] | |
}, | |
{ | |
"id": "metric.go.memory.used", | |
"type": "metric", | |
"metric_name": "go.memory.used", | |
"brief": "Memory used by the Go runtime.", | |
"note": "Computed from `(/memory/classes/total:bytes - /memory/classes/heap/released:bytes)`.\n", | |
"instrument": "updowncounter", | |
"unit": "By", | |
"attributes": [ | |
"go.memory.type" | |
], | |
"stability": "development" | |
}, | |
{ | |
"id": "metric.go.memory.limit", | |
"type": "metric", | |
"metric_name": "go.memory.limit", | |
"brief": "Go runtime memory limit configured by the user, if a limit exists.", | |
"note": "Computed from `/gc/gomemlimit:bytes`. This metric is excluded if the limit obtained from the Go runtime is math.MaxInt64.\n", | |
"instrument": "updowncounter", | |
"unit": "By", | |
"stability": "development" | |
}, | |
{ | |
"id": "metric.go.memory.allocated", | |
"type": "metric", | |
"metric_name": "go.memory.allocated", | |
"brief": "Memory allocated to the heap by the application.", | |
"note": "Computed from `/gc/heap/allocs:bytes`.\n", | |
"instrument": "counter", | |
"unit": "By", | |
"stability": "development" | |
}, | |
{ | |
"id": "metric.go.memory.allocations", | |
"type": "metric", | |
"metric_name": "go.memory.allocations", | |
"brief": "Count of allocations to the heap by the application.", | |
"note": "Computed from `/gc/heap/allocs:objects`.\n", | |
"instrument": "counter", | |
"unit": "{allocation}", | |
"stability": "development" | |
}, | |
{ | |
"id": "metric.go.memory.gc.goal", | |
"type": "metric", | |
"metric_name": "go.memory.gc.goal", | |
"brief": "Heap size target for the end of the GC cycle.", | |
"note": "Computed from `/gc/heap/goal:bytes`.\n", | |
"instrument": "updowncounter", | |
"unit": "By", | |
"stability": "development" | |
}, | |
{ | |
"id": "metric.go.goroutine.count", | |
"type": "metric", | |
"metric_name": "go.goroutine.count", | |
"brief": "Count of live goroutines.", | |
"note": "Computed from `/sched/goroutines:goroutines`.\n", | |
"instrument": "updowncounter", | |
"unit": "{goroutine}", | |
"stability": "development" | |
}, | |
{ | |
"id": "metric.go.processor.limit", | |
"type": "metric", | |
"metric_name": "go.processor.limit", | |
"brief": "The number of OS threads that can execute user-level Go code simultaneously.", | |
"note": "Computed from `/sched/gomaxprocs:threads`.\n", | |
"instrument": "updowncounter", | |
"unit": "{thread}", | |
"stability": "development" | |
}, | |
{ | |
"id": "metric.go.schedule.duration", | |
"type": "metric", | |
"metric_name": "go.schedule.duration", | |
"brief": "The time goroutines have spent in the scheduler in a runnable state before actually running.", | |
"note": "Computed from `/sched/latencies:seconds`. Bucket boundaries are provided by the runtime, and are subject to change.\n", | |
"instrument": "histogram", | |
"unit": "s", | |
"stability": "development" | |
}, | |
{ | |
"id": "metric.go.config.gogc", | |
"type": "metric", | |
"metric_name": "go.config.gogc", | |
"brief": "Heap size target percentage configured by the user, otherwise 100.", | |
"note": "The value range is [0.0,100.0]. Computed from `/gc/gogc:percent`.\n", | |
"instrument": "updowncounter", | |
"unit": "%", | |
"stability": "development" | |
}, | |
{ | |
"id": "registry.go", | |
"type": "attribute_group", | |
"display_name": "Go Attributes", | |
"brief": "This document defines Go related attributes.\n", | |
"attributes": [ | |
"go.memory.type" | |
] | |
}, | |
{ | |
"id": "registry.graphql", | |
"type": "attribute_group", | |
"display_name": "GraphQL Attributes", | |
"brief": "This document defines attributes for GraphQL.", | |
"attributes": [ | |
"graphql.operation.name", | |
"graphql.operation.type", | |
"graphql.document" | |
] | |
}, | |
{ | |
"id": "metric.hw.attributes", | |
"type": "attribute_group", | |
"brief": "Attributes for hardware metrics", | |
"extends": "hardware.attributes.common", | |
"attributes": [ | |
"hw.type" | |
] | |
}, | |
{ | |
"id": "metric.hw.energy", | |
"type": "metric", | |
"metric_name": "hw.energy", | |
"stability": "development", | |
"brief": "Energy consumed by the component", | |
"instrument": "counter", | |
"unit": "J", | |
"extends": "metric.hw.attributes" | |
}, | |
{ | |
"id": "metric.hw.errors", | |
"type": "metric", | |
"metric_name": "hw.errors", | |
"stability": "development", | |
"brief": "Number of errors encountered by the component", | |
"instrument": "counter", | |
"unit": "{error}", | |
"extends": "metric.hw.attributes", | |
"attributes": [ | |
"error.type" | |
] | |
}, | |
{ | |
"id": "metric.hw.power", | |
"type": "metric", | |
"metric_name": "hw.power", | |
"stability": "development", | |
"brief": "Instantaneous power consumed by the component", | |
"note": "It is recommended to report `hw.energy` instead of `hw.power` when possible.\n", | |
"instrument": "gauge", | |
"unit": "W", | |
"extends": "metric.hw.attributes" | |
}, | |
{ | |
"id": "metric.hw.status", | |
"type": "metric", | |
"metric_name": "hw.status", | |
"stability": "development", | |
"brief": "Operational status: `1` (true) or `0` (false) for each of the possible states", | |
"instrument": "updowncounter", | |
"unit": "1", | |
"extends": "metric.hw.attributes", | |
"note": "`hw.status` is currently specified as an *UpDownCounter* but would ideally be represented using a [*StateSet* as defined in OpenMetrics](https://github.com/prometheus/OpenMetrics/blob/v1.0.0/specification/OpenMetrics.md#stateset). This semantic convention will be updated once *StateSet* is specified in OpenTelemetry. This planned change is not expected to have any consequence on the way users query their timeseries backend to retrieve the values of `hw.status` over time.\n", | |
"attributes": [ | |
"hw.state" | |
] | |
}, | |
{ | |
"id": "hardware.attributes.common", | |
"type": "attribute_group", | |
"stability": "development", | |
"brief": "Common hardware attributes", | |
"attributes": [ | |
"hw.id", | |
"hw.name", | |
"hw.parent" | |
] | |
}, | |
{ | |
"id": "metric.hw.host.ambient_temperature", | |
"type": "metric", | |
"metric_name": "hw.host.ambient_temperature", | |
"stability": "development", | |
"brief": "Ambient (external) temperature of the physical host", | |
"instrument": "gauge", | |
"unit": "Cel", | |
"extends": "hardware.attributes.common" | |
}, | |
{ | |
"id": "metric.hw.host.energy", | |
"type": "metric", | |
"metric_name": "hw.host.energy", | |
"stability": "development", | |
"brief": "Total energy consumed by the entire physical host, in joules", | |
"instrument": "counter", | |
"unit": "J", | |
"extends": "hardware.attributes.common", | |
"note": "The overall energy usage of a host MUST be reported using the specific `hw.host.energy` and `hw.host.power` metrics **only**, instead of the generic `hw.energy` and `hw.power` described in the previous section, to prevent summing up overlapping values.\n" | |
}, | |
{ | |
"id": "metric.hw.host.heating_margin", | |
"type": "metric", | |
"metric_name": "hw.host.heating_margin", | |
"stability": "experimental", | |
"brief": "By how many degrees Celsius the temperature of the physical host can be increased, before reaching a warning threshold on one of the internal sensors\n", | |
"instrument": "gauge", | |
"unit": "Cel", | |
"extends": "hardware.attributes.common" | |
}, | |
{ | |
"id": "metric.hw.host.power", | |
"type": "metric", | |
"metric_name": "hw.host.power", | |
"stability": "experimental", | |
"brief": "Instantaneous power consumed by the entire physical host in Watts (`hw.host.energy` is preferred)\n", | |
"instrument": "gauge", | |
"unit": "W", | |
"extends": "hardware.attributes.common", | |
"note": "The overall energy usage of a host MUST be reported using the specific `hw.host.energy` and `hw.host.power` metrics **only**, instead of the generic `hw.energy` and `hw.power` described in the previous section, to prevent summing up overlapping values.\n" | |
}, | |
{ | |
"id": "registry.hardware", | |
"type": "attribute_group", | |
"display_name": "Hardware Attributes", | |
"brief": "Attributes for hardware.\n", | |
"attributes": [ | |
"hw.id", | |
"hw.name", | |
"hw.parent", | |
"hw.type", | |
"hw.state" | |
] | |
}, | |
{ | |
"id": "registry.heroku", | |
"type": "attribute_group", | |
"display_name": "Heroku Attributes", | |
"brief": "This document defines attributes for the Android platform on which the Android application is running.\n", | |
"attributes": [ | |
"heroku.release.creation_timestamp", | |
"heroku.release.commit", | |
"heroku.app.id" | |
] | |
}, | |
{ | |
"id": "resource.heroku", | |
"type": "resource", | |
"stability": "development", | |
"name": "heroku", | |
"brief": "[Heroku dyno metadata](https://devcenter.heroku.com/articles/dyno-metadata)\n", | |
"attributes": [ | |
"heroku.release.creation_timestamp", | |
"heroku.release.commit", | |
"heroku.app.id" | |
] | |
}, | |
{ | |
"id": "registry.host", | |
"type": "attribute_group", | |
"display_name": "Host Attributes", | |
"brief": "A host is defined as a computing instance. For example, physical servers, virtual machines, switches or disk array.\n", | |
"attributes": [ | |
"host.id", | |
"host.name", | |
"host.type", | |
"host.arch", | |
"host.image.name", | |
"host.image.id", | |
"host.image.version", | |
"host.ip", | |
"host.mac", | |
"host.cpu.vendor.id", | |
"host.cpu.family", | |
"host.cpu.model.id", | |
"host.cpu.model.name", | |
"host.cpu.stepping", | |
"host.cpu.cache.l2.size" | |
] | |
}, | |
{ | |
"id": "entity.host", | |
"type": "entity", | |
"stability": "development", | |
"name": "host", | |
"brief": "A host is defined as a computing instance. For example, physical servers, virtual machines, switches or disk array.\n", | |
"attributes": [ | |
"host.id" | |
], | |
"relationships": [ | |
{ | |
"has_a_kind_of": "host.cpu" | |
} | |
], | |
"descriptive_attributes": [ | |
"host.name", | |
"host.type", | |
"host.arch", | |
"host.image.name", | |
"host.image.id", | |
"host.image.version", | |
"host.ip", | |
"host.mac" | |
] | |
}, | |
{ | |
"id": "entity.host.cpu", | |
"type": "entity", | |
"stability": "development", | |
"name": "host.cpu", | |
"brief": "A host's CPU information\n", | |
"attributes": [ | |
"host.cpu.model.id" | |
], | |
"descriptive_attributes": [ | |
"host.cpu.model.name", | |
"host.cpu.vendor.id", | |
"host.cpu.family", | |
"host.cpu.stepping", | |
"host.cpu.cache.l2.size" | |
] | |
}, | |
{ | |
"id": "attributes.http.common", | |
"type": "attribute_group", | |
"brief": "Describes HTTP attributes.", | |
"attributes": [ | |
"http.request.method", | |
"http.response.status_code", | |
"error.type", | |
"network.protocol.name", | |
"network.protocol.version" | |
] | |
}, | |
{ | |
"id": "attributes.http.client", | |
"type": "attribute_group", | |
"brief": "HTTP Client attributes", | |
"extends": "attributes.http.common", | |
"attributes": [ | |
"server.address", | |
"server.port", | |
"url.scheme", | |
"url.template" | |
] | |
}, | |
{ | |
"id": "attributes.http.server", | |
"type": "attribute_group", | |
"brief": "HTTP Server attributes", | |
"extends": "attributes.http.common", | |
"attributes": [ | |
"http.route", | |
"server.address", | |
"server.port", | |
"url.scheme" | |
] | |
}, | |
{ | |
"id": "registry.http.deprecated", | |
"type": "attribute_group", | |
"display_name": "Deprecated HTTP Attributes", | |
"brief": "Describes deprecated HTTP attributes.", | |
"attributes": [ | |
"http.method", | |
"http.status_code", | |
"http.scheme", | |
"http.url", | |
"http.target", | |
"http.request_content_length", | |
"http.response_content_length", | |
"http.client_ip", | |
"http.host", | |
"http.request_content_length_uncompressed", | |
"http.response_content_length_uncompressed", | |
"http.server_name", | |
"http.flavor", | |
"http.user_agent" | |
] | |
}, | |
{ | |
"id": "metric_attributes.http.server", | |
"type": "attribute_group", | |
"brief": "HTTP server attributes", | |
"extends": "attributes.http.server", | |
"attributes": [ | |
"server.address", | |
"server.port", | |
"user_agent.synthetic.type" | |
] | |
}, | |
{ | |
"id": "metric_attributes.http.client", | |
"type": "attribute_group", | |
"brief": "HTTP client attributes", | |
"extends": "attributes.http.client" | |
}, | |
{ | |
"id": "metric_attributes.http.client.experimental", | |
"type": "attribute_group", | |
"brief": "HTTP client experimental attributes", | |
"extends": "metric_attributes.http.client", | |
"attributes": [ | |
"url.template" | |
] | |
}, | |
{ | |
"id": "metric.http.server.request.duration", | |
"type": "metric", | |
"metric_name": "http.server.request.duration", | |
"brief": "Duration of HTTP server requests.", | |
"instrument": "histogram", | |
"unit": "s", | |
"stability": "stable", | |
"extends": "metric_attributes.http.server" | |
}, | |
{ | |
"id": "metric.http.server.active_requests", | |
"type": "metric", | |
"metric_name": "http.server.active_requests", | |
"stability": "development", | |
"brief": "Number of active HTTP server requests.", | |
"instrument": "updowncounter", | |
"unit": "{request}", | |
"attributes": [ | |
"http.request.method", | |
"url.scheme", | |
"server.address", | |
"server.port" | |
] | |
}, | |
{ | |
"id": "metric.http.server.request.body.size", | |
"type": "metric", | |
"metric_name": "http.server.request.body.size", | |
"stability": "development", | |
"brief": "Size of HTTP server request bodies.", | |
"instrument": "histogram", | |
"unit": "By", | |
"note": "The size of the request payload body in bytes. This is the number of bytes transferred excluding headers and is often, but not always, present as the [Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content-length) header. For requests using transport encoding, this should be the compressed size.\n", | |
"extends": "metric_attributes.http.server" | |
}, | |
{ | |
"id": "metric.http.server.response.body.size", | |
"type": "metric", | |
"metric_name": "http.server.response.body.size", | |
"stability": "development", | |
"brief": "Size of HTTP server response bodies.", | |
"instrument": "histogram", | |
"unit": "By", | |
"note": "The size of the response payload body in bytes. This is the number of bytes transferred excluding headers and is often, but not always, present as the [Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content-length) header. For requests using transport encoding, this should be the compressed size.\n", | |
"extends": "metric_attributes.http.server" | |
}, | |
{ | |
"id": "metric.http.client.request.duration", | |
"type": "metric", | |
"metric_name": "http.client.request.duration", | |
"brief": "Duration of HTTP client requests.", | |
"instrument": "histogram", | |
"unit": "s", | |
"stability": "stable", | |
"extends": "metric_attributes.http.client" | |
}, | |
{ | |
"id": "metric.http.client.request.body.size", | |
"type": "metric", | |
"metric_name": "http.client.request.body.size", | |
"stability": "development", | |
"brief": "Size of HTTP client request bodies.", | |
"instrument": "histogram", | |
"unit": "By", | |
"note": "The size of the request payload body in bytes. This is the number of bytes transferred excluding headers and is often, but not always, present as the [Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content-length) header. For requests using transport encoding, this should be the compressed size.\n", | |
"extends": "metric_attributes.http.client.experimental" | |
}, | |
{ | |
"id": "metric.http.client.response.body.size", | |
"type": "metric", | |
"metric_name": "http.client.response.body.size", | |
"stability": "development", | |
"brief": "Size of HTTP client response bodies.", | |
"instrument": "histogram", | |
"unit": "By", | |
"note": "The size of the response payload body in bytes. This is the number of bytes transferred excluding headers and is often, but not always, present as the [Content-Length](https://www.rfc-editor.org/rfc/rfc9110.html#field.content-length) header. For requests using transport encoding, this should be the compressed size.\n", | |
"extends": "metric_attributes.http.client.experimental" | |
}, | |
{ | |
"id": "metric.http.client.open_connections", | |
"type": "metric", | |
"metric_name": "http.client.open_connections", | |
"stability": "development", | |
"brief": "Number of outbound HTTP connections that are currently active or idle on the client.", | |
"instrument": "updowncounter", | |
"unit": "{connection}", | |
"attributes": [ | |
"http.connection.state", | |
"network.peer.address", | |
"network.protocol.version", | |
"server.address", | |
"server.port", | |
"url.scheme" | |
] | |
}, | |
{ | |
"id": "metric.http.client.connection.duration", | |
"type": "metric", | |
"metric_name": "http.client.connection.duration", | |
"stability": "development", | |
"brief": "The duration of the successfully established outbound HTTP connections.", | |
"instrument": "histogram", | |
"unit": "s", | |
"attributes": [ | |
"network.peer.address", | |
"network.protocol.version", | |
"server.address", | |
"server.port", | |
"url.scheme" | |
] | |
}, | |
{ | |
"id": "metric.http.client.active_requests", | |
"type": "metric", | |
"metric_name": "http.client.active_requests", | |
"stability": "development", | |
"brief": "Number of active HTTP requests.", | |
"instrument": "updowncounter", | |
"unit": "{request}", | |
"attributes": [ | |
"http.request.method", | |
"server.address", | |
"server.port", | |
"url.scheme", | |
"url.template" | |
] | |
}, | |
{ | |
"id": "registry.http", | |
"type": "attribute_group", | |
"display_name": "HTTP Attributes", | |
"brief": "This document defines semantic convention attributes in the HTTP namespace.", | |
"attributes": [ | |
"http.request.body.size", | |
"http.request.header", | |
"http.request.method", | |
"http.request.method_original", | |
"http.request.resend_count", | |
"http.request.size", | |
"http.response.body.size", | |
"http.response.header", | |
"http.response.size", | |
"http.response.status_code", | |
"http.route", | |
"http.connection.state" | |
] | |
}, | |
{ | |
"id": "span.http.client", | |
"type": "span", | |
"extends": "attributes.http.client", | |
"span_kind": "client", | |
"stability": "stable", | |
"brief": "This span represents an outbound HTTP request.\n", | |
"note": "There are two ways HTTP client spans can be implemented in an instrumentation:\n\n1. Instrumentations SHOULD create an HTTP span for each attempt to send an HTTP request over the wire.\n In case the request is resent, the resend attempts MUST follow the [HTTP resend spec](#http-request-retries-and-redirects).\n In this case, instrumentations SHOULD NOT (also) emit a logical encompassing HTTP client span.\n\n2. If for some reason it is not possible to emit a span for each send attempt (because e.g. the instrumented library does not expose hooks that would allow this),\n instrumentations MAY create an HTTP span for the top-most operation of the HTTP client.\n In this case, the `url.full` MUST be the absolute URL that was originally requested, before any HTTP-redirects that may happen when executing the request.\n\n**Span name:** refer to the [Span Name](/docs/http/http-spans.md#name) section.\n\n**Span kind** MUST be `SERVER`.\n\n**Span status:** refer to the [Span Status](/docs/http/http-spans.md#status) section.\n", | |
"attributes": [ | |
"http.request.method", | |
"http.request.method_original", | |
"http.request.resend_count", | |
"http.request.header", | |
"http.response.header", | |
"server.address", | |
"server.port", | |
"url.full", | |
"user_agent.original", | |
"url.scheme", | |
"network.peer.address", | |
"network.peer.port", | |
"network.transport", | |
"http.request.size", | |
"http.response.size", | |
"http.request.body.size", | |
"http.response.body.size", | |
"user_agent.synthetic.type" | |
] | |
}, | |
{ | |
"id": "span.http.server", | |
"type": "span", | |
"extends": "attributes.http.server", | |
"span_kind": "server", | |
"brief": "This span represents an inbound HTTP request.\n", | |
"note": "**Span name:** refer to the [Span Name](/docs/http/http-spans.md#name) section.\n\n**Span kind** MUST be `SERVER`.\n\n**Span status:** refer to the [Span Status](/docs/http/http-spans.md#status) section.\n", | |
"stability": "stable", | |
"attributes": [ | |
"http.request.method", | |
"http.request.method_original", | |
"http.route", | |
"http.request.header", | |
"http.response.header", | |
"server.address", | |
"server.port", | |
"network.local.address", | |
"network.local.port", | |
"client.address", | |
"client.port", | |
"url.path", | |
"url.query", | |
"url.scheme", | |
"user_agent.original", | |
"network.peer.address", | |
"network.peer.port", | |
"network.transport", | |
"http.request.size", | |
"http.response.size", | |
"http.request.body.size", | |
"http.response.body.size", | |
"user_agent.synthetic.type" | |
] | |
}, | |
{ | |
"id": "registry.ios.deprecated", | |
"type": "attribute_group", | |
"display_name": "Deprecated iOS Attributes", | |
"brief": "The iOS platform on which the iOS application is running.\n", | |
"attributes": [ | |
"ios.state" | |
] | |
}, | |
{ | |
"id": "registry.ios", | |
"type": "attribute_group", | |
"display_name": "iOS Attributes", | |
"brief": "This group describes iOS-specific attributes.\n", | |
"attributes": [ | |
"ios.app.state" | |
] | |
}, | |
{ | |
"id": "metric.jvm.buffer.memory.usage", | |
"type": "metric", | |
"metric_name": "jvm.buffer.memory.usage", | |
"stability": "development", | |
"deprecated": "Replaced by `jvm.buffer.memory.used`.", | |
"brief": "Deprecated, use `jvm.buffer.memory.used` instead.", | |
"extends": "attributes.jvm.buffer", | |
"instrument": "updowncounter", | |
"unit": "By" | |
}, | |
{ | |
"id": "metric.jvm.memory.init", | |
"type": "metric", | |
"metric_name": "jvm.memory.init", | |
"stability": "development", | |
"extends": "attributes.jvm.memory", | |
"brief": "Measure of initial memory requested.", | |
"instrument": "updowncounter", | |
"unit": "By" | |
}, | |
{ | |
"id": "metric.jvm.system.cpu.utilization", | |
"type": "metric", | |
"metric_name": "jvm.system.cpu.utilization", | |
"stability": "development", | |
"brief": "Recent CPU utilization for the whole system as reported by the JVM.", | |
"note": "The value range is [0.0,1.0]. This utilization is not defined as being for the specific interval since last measurement (unlike `system.cpu.utilization`). [Reference](https://docs.oracle.com/en/java/javase/17/docs/api/jdk.management/com/sun/management/OperatingSystemMXBean.html#getCpuLoad()).\n", | |
"instrument": "gauge", | |
"unit": "1" | |
}, | |
{ | |
"id": "metric.jvm.system.cpu.load_1m", | |
"type": "metric", | |
"metric_name": "jvm.system.cpu.load_1m", | |
"stability": "development", | |
"brief": "Average CPU load of the whole system for the last minute as reported by the JVM.", | |
"note": "The value range is [0,n], where n is the number of CPU cores - or a negative number if the value is not available. This utilization is not defined as being for the specific interval since last measurement (unlike `system.cpu.utilization`). [Reference](https://docs.oracle.com/en/java/javase/17/docs/api/java.management/java/lang/management/OperatingSystemMXBean.html#getSystemLoadAverage()).\n", | |
"instrument": "gauge", | |
"unit": "{run_queue_item}" | |
}, | |
{ | |
"id": "attributes.jvm.buffer", | |
"type": "attribute_group", | |
"brief": "Describes JVM buffer metric attributes.", | |
"attributes": [ | |
"jvm.buffer.pool.name" | |
] | |
}, | |
{ | |
"id": "metric.jvm.buffer.memory.used", | |
"type": "metric", | |
"metric_name": "jvm.buffer.memory.used", | |
"stability": "development", | |
"extends": "attributes.jvm.buffer", | |
"brief": "Measure of memory used by buffers.", | |
"instrument": "updowncounter", | |
"unit": "By" | |
}, | |
{ | |
"id": "metric.jvm.buffer.memory.limit", | |
"type": "metric", | |
"metric_name": "jvm.buffer.memory.limit", | |
"stability": "development", | |
"extends": "attributes.jvm.buffer", | |
"brief": "Measure of total memory capacity of buffers.", | |
"instrument": "updowncounter", | |
"unit": "By" | |
}, | |
{ | |
"id": "metric.jvm.buffer.count", | |
"type": "metric", | |
"metric_name": "jvm.buffer.count", | |
"stability": "development", | |
"extends": "attributes.jvm.buffer", | |
"brief": "Number of buffers in the pool.", | |
"instrument": "updowncounter", | |
"unit": "{buffer}" | |
}, | |
{ | |
"id": "metric.jvm.file_descriptor.count", | |
"type": "metric", | |
"metric_name": "jvm.file_descriptor.count", | |
"stability": "development", | |
"brief": "Number of open file descriptors as reported by the JVM.", | |
"instrument": "updowncounter", | |
"unit": "{file_descriptor}" | |
}, | |
{ | |
"id": "attributes.jvm.memory", | |
"type": "attribute_group", | |
"brief": "Describes JVM memory metric attributes.", | |
"attributes": [ | |
"jvm.memory.type", | |
"jvm.memory.pool.name" | |
] | |
}, | |
{ | |
"id": "metric.jvm.memory.used", | |
"type": "metric", | |
"metric_name": "jvm.memory.used", | |
"extends": "attributes.jvm.memory", | |
"brief": "Measure of memory used.", | |
"instrument": "updowncounter", | |
"unit": "By", | |
"stability": "stable" | |
}, | |
{ | |
"id": "metric.jvm.memory.committed", | |
"type": "metric", | |
"metric_name": "jvm.memory.committed", | |
"extends": "attributes.jvm.memory", | |
"brief": "Measure of memory committed.", | |
"instrument": "updowncounter", | |
"unit": "By", | |
"stability": "stable" | |
}, | |
{ | |
"id": "metric.jvm.memory.limit", | |
"type": "metric", | |
"metric_name": "jvm.memory.limit", | |
"extends": "attributes.jvm.memory", | |
"brief": "Measure of max obtainable memory.", | |
"instrument": "updowncounter", | |
"unit": "By", | |
"stability": "stable" | |
}, | |
{ | |
"id": "metric.jvm.memory.used_after_last_gc", | |
"type": "metric", | |
"metric_name": "jvm.memory.used_after_last_gc", | |
"extends": "attributes.jvm.memory", | |
"brief": "Measure of memory used, as measured after the most recent garbage collection event on this pool.", | |
"instrument": "updowncounter", | |
"unit": "By", | |
"stability": "stable" | |
}, | |
{ | |
"id": "metric.jvm.gc.duration", | |
"type": "metric", | |
"metric_name": "jvm.gc.duration", | |
"brief": "Duration of JVM garbage collection actions.", | |
"instrument": "histogram", | |
"unit": "s", | |
"attributes": [ | |
"jvm.gc.name", | |
"jvm.gc.action", | |
"jvm.gc.cause" | |
], | |
"stability": "stable" | |
}, | |
{ | |
"id": "metric.jvm.thread.count", | |
"type": "metric", | |
"metric_name": "jvm.thread.count", | |
"brief": "Number of executing platform threads.", | |
"instrument": "updowncounter", | |
"unit": "{thread}", | |
"attributes": [ | |
"jvm.thread.daemon", | |
"jvm.thread.state" | |
], | |
"stability": "stable" | |
}, | |
{ | |
"id": "metric.jvm.class.loaded", | |
"type": "metric", | |
"metric_name": "jvm.class.loaded", | |
"brief": "Number of classes loaded since JVM start.", | |
"instrument": "counter", | |
"unit": "{class}", | |
"stability": "stable" | |
}, | |
{ | |
"id": "metric.jvm.class.unloaded", | |
"type": "metric", | |
"metric_name": "jvm.class.unloaded", | |
"brief": "Number of classes unloaded since JVM start.", | |
"instrument": "counter", | |
"unit": "{class}", | |
"stability": "stable" | |
}, | |
{ | |
"id": "metric.jvm.class.count", | |
"type": "metric", | |
"metric_name": "jvm.class.count", | |
"brief": "Number of classes currently loaded.", | |
"instrument": "updowncounter", | |
"unit": "{class}", | |
"stability": "stable" | |
}, | |
{ | |
"id": "metric.jvm.cpu.count", | |
"type": "metric", | |
"metric_name": "jvm.cpu.count", | |
"brief": "Number of processors available to the Java virtual machine.", | |
"instrument": "updowncounter", | |
"unit": "{cpu}", | |
"stability": "stable" | |
}, | |
{ | |
"id": "metric.jvm.cpu.time", | |
"type": "metric", | |
"metric_name": "jvm.cpu.time", | |
"brief": "CPU time used by the process as reported by the JVM.", | |
"instrument": "counter", | |
"unit": "s", | |
"stability": "stable" | |
}, | |
{ | |
"id": "metric.jvm.cpu.recent_utilization", | |
"type": "metric", | |
"metric_name": "jvm.cpu.recent_utilization", | |
"brief": "Recent CPU utilization for the process as reported by the JVM.", | |
"note": "The value range is [0.0,1.0]. This utilization is not defined as being for the specific interval since last measurement (unlike `system.cpu.utilization`). [Reference](https://docs.oracle.com/en/java/javase/17/docs/api/jdk.management/com/sun/management/OperatingSystemMXBean.html#getProcessCpuLoad()).\n", | |
"instrument": "gauge", | |
"unit": "1", | |
"stability": "stable" | |
}, | |
{ | |
"id": "registry.jvm", | |
"type": "attribute_group", | |
"display_name": "Java Virtual Machine (JVM) Attributes", | |
"brief": "This document defines Java Virtual machine related attributes.\n", | |
"attributes": [ | |
"jvm.gc.action", | |
"jvm.gc.cause", | |
"jvm.gc.name", | |
"jvm.memory.type", | |
"jvm.memory.pool.name", | |
"jvm.thread.daemon", | |
"jvm.thread.state", | |
"jvm.buffer.pool.name" | |
] | |
}, | |
{ | |
"id": "metric.k8s.replication_controller.desired_pods", | |
"type": "metric", | |
"metric_name": "k8s.replication_controller.desired_pods", | |
"stability": "development", | |
"deprecated": "Replaced by `k8s.replicationcontroller.desired_pods`.", | |
"brief": "Deprecated, use `k8s.replicationcontroller.desired_pods` instead.", | |
"note": "This metric aligns with the `replicas` field of the\n[K8s ReplicationControllerSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#replicationcontrollerspec-v1-core)\n\nThis metric SHOULD, at a minimum, be reported against a\n[`k8s.replicationcontroller`](../resource/k8s.md#replicationcontroller) resource.\n", | |
"instrument": "updowncounter", | |
"unit": "{pod}" | |
}, | |
{ | |
"id": "metric.k8s.replication_controller.available_pods", | |
"type": "metric", | |
"metric_name": "k8s.replication_controller.available_pods", | |
"stability": "development", | |
"deprecated": "Replaced by `k8s.replicationcontroller.available_pods`.", | |
"brief": "Deprecated, use `k8s.replicationcontroller.available_pods` instead.", | |
"note": "This metric aligns with the `availableReplicas` field of the\n[K8s ReplicationControllerStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#replicationcontrollerstatus-v1-core)\n\nThis metric SHOULD, at a minimum, be reported against a\n[`k8s.replicationcontroller`](../resource/k8s.md#replicationcontroller) resource.\n", | |
"instrument": "updowncounter", | |
"unit": "{pod}" | |
}, | |
{ | |
"id": "registry.k8s.deprecated", | |
"type": "attribute_group", | |
"display_name": "Deprecated Kubernetes Attributes", | |
"brief": "Describes deprecated k8s attributes.", | |
"attributes": [ | |
"k8s.pod.labels" | |
] | |
}, | |
{ | |
"id": "metric.k8s.pod.uptime", | |
"type": "metric", | |
"metric_name": "k8s.pod.uptime", | |
"stability": "development", | |
"brief": "The time the Pod has been running", | |
"note": "Instrumentations SHOULD use a gauge with type `double` and measure uptime in seconds as a floating point number with the highest precision available.\nThe actual accuracy would depend on the instrumentation and operating system.\n", | |
"instrument": "gauge", | |
"unit": "s", | |
"entity_associations": [ | |
"k8s.pod" | |
] | |
}, | |
{ | |
"id": "metric.k8s.pod.cpu.time", | |
"type": "metric", | |
"metric_name": "k8s.pod.cpu.time", | |
"stability": "development", | |
"brief": "Total CPU time consumed", | |
"note": "Total CPU time consumed by the specific Pod on all available CPU cores\n", | |
"instrument": "counter", | |
"unit": "s", | |
"entity_associations": [ | |
"k8s.pod" | |
] | |
}, | |
{ | |
"id": "metric.k8s.pod.cpu.usage", | |
"type": "metric", | |
"metric_name": "k8s.pod.cpu.usage", | |
"stability": "development", | |
"brief": "Pod's CPU usage, measured in cpus. Range from 0 to the number of allocatable CPUs", | |
"note": "CPU usage of the specific Pod on all available CPU cores, averaged over the sample window\n", | |
"instrument": "gauge", | |
"unit": "{cpu}", | |
"entity_associations": [ | |
"k8s.pod" | |
] | |
}, | |
{ | |
"id": "metric.k8s.pod.memory.usage", | |
"type": "metric", | |
"metric_name": "k8s.pod.memory.usage", | |
"stability": "development", | |
"brief": "Memory usage of the Pod", | |
"note": "Total memory usage of the Pod\n", | |
"instrument": "gauge", | |
"unit": "By", | |
"entity_associations": [ | |
"k8s.pod" | |
] | |
}, | |
{ | |
"id": "metric.k8s.pod.network.io", | |
"type": "metric", | |
"metric_name": "k8s.pod.network.io", | |
"stability": "development", | |
"brief": "Network bytes for the Pod", | |
"instrument": "counter", | |
"unit": "By", | |
"attributes": [ | |
"network.interface.name", | |
"network.io.direction" | |
], | |
"entity_associations": [ | |
"k8s.pod" | |
] | |
}, | |
{ | |
"id": "metric.k8s.pod.network.errors", | |
"type": "metric", | |
"metric_name": "k8s.pod.network.errors", | |
"stability": "development", | |
"brief": "Pod network errors", | |
"instrument": "counter", | |
"unit": "{error}", | |
"attributes": [ | |
"network.interface.name", | |
"network.io.direction" | |
], | |
"entity_associations": [ | |
"k8s.pod" | |
] | |
}, | |
{ | |
"id": "metric.k8s.node.uptime", | |
"type": "metric", | |
"metric_name": "k8s.node.uptime", | |
"stability": "development", | |
"brief": "The time the Node has been running", | |
"note": "Instrumentations SHOULD use a gauge with type `double` and measure uptime in seconds as a floating point number with the highest precision available.\nThe actual accuracy would depend on the instrumentation and operating system.\n", | |
"instrument": "gauge", | |
"unit": "s", | |
"entity_associations": [ | |
"k8s.node" | |
] | |
}, | |
{ | |
"id": "metric.k8s.node.cpu.time", | |
"type": "metric", | |
"metric_name": "k8s.node.cpu.time", | |
"stability": "development", | |
"brief": "Total CPU time consumed", | |
"note": "Total CPU time consumed by the specific Node on all available CPU cores\n", | |
"instrument": "counter", | |
"unit": "s" | |
}, | |
{ | |
"id": "metric.k8s.node.cpu.usage", | |
"type": "metric", | |
"metric_name": "k8s.node.cpu.usage", | |
"stability": "development", | |
"brief": "Node's CPU usage, measured in cpus. Range from 0 to the number of allocatable CPUs", | |
"note": "CPU usage of the specific Node on all available CPU cores, averaged over the sample window\n", | |
"instrument": "gauge", | |
"unit": "{cpu}", | |
"entity_associations": [ | |
"k8s.node" | |
] | |
}, | |
{ | |
"id": "metric.k8s.node.memory.usage", | |
"type": "metric", | |
"metric_name": "k8s.node.memory.usage", | |
"stability": "development", | |
"brief": "Memory usage of the Node", | |
"note": "Total memory usage of the Node\n", | |
"instrument": "gauge", | |
"unit": "By", | |
"entity_associations": [ | |
"k8s.node" | |
] | |
}, | |
{ | |
"id": "metric.k8s.node.network.io", | |
"type": "metric", | |
"metric_name": "k8s.node.network.io", | |
"stability": "development", | |
"brief": "Network bytes for the Node", | |
"instrument": "counter", | |
"unit": "By", | |
"attributes": [ | |
"network.interface.name", | |
"network.io.direction" | |
] | |
}, | |
{ | |
"id": "metric.k8s.node.network.errors", | |
"type": "metric", | |
"metric_name": "k8s.node.network.errors", | |
"stability": "development", | |
"brief": "Node network errors", | |
"instrument": "counter", | |
"unit": "{error}", | |
"attributes": [ | |
"network.interface.name", | |
"network.io.direction" | |
], | |
"entity_associations": [ | |
"k8s.node" | |
] | |
}, | |
{ | |
"id": "metric.k8s.deployment.desired_pods", | |
"type": "metric", | |
"metric_name": "k8s.deployment.desired_pods", | |
"stability": "development", | |
"brief": "Number of desired replica pods in this deployment", | |
"note": "This metric aligns with the `replicas` field of the\n[K8s DeploymentSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#deploymentspec-v1-apps).\n\nThis metric SHOULD, at a minimum, be reported against a\n[`k8s.deployment`](../resource/k8s.md#deployment) resource.\n", | |
"instrument": "updowncounter", | |
"unit": "{pod}" | |
}, | |
{ | |
"id": "metric.k8s.deployment.available_pods", | |
"type": "metric", | |
"metric_name": "k8s.deployment.available_pods", | |
"stability": "development", | |
"brief": "Total number of available replica pods (ready for at least minReadySeconds) targeted by this deployment", | |
"note": "This metric aligns with the `availableReplicas` field of the\n[K8s DeploymentStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#deploymentstatus-v1-apps).\n\nThis metric SHOULD, at a minimum, be reported against a\n[`k8s.deployment`](../resource/k8s.md#deployment) resource.\n", | |
"instrument": "updowncounter", | |
"unit": "{pod}", | |
"entity_associations": [ | |
"k8s.deployment" | |
] | |
}, | |
{ | |
"id": "metric.k8s.replicaset.desired_pods", | |
"type": "metric", | |
"metric_name": "k8s.replicaset.desired_pods", | |
"stability": "development", | |
"brief": "Number of desired replica pods in this replicaset", | |
"note": "This metric aligns with the `replicas` field of the\n[K8s ReplicaSetSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#replicasetspec-v1-apps).\n\nThis metric SHOULD, at a minimum, be reported against a\n[`k8s.replicaset`](../resource/k8s.md#replicaset) resource.\n", | |
"instrument": "updowncounter", | |
"unit": "{pod}" | |
}, | |
{ | |
"id": "metric.k8s.replicaset.available_pods", | |
"type": "metric", | |
"metric_name": "k8s.replicaset.available_pods", | |
"stability": "development", | |
"brief": "Total number of available replica pods (ready for at least minReadySeconds) targeted by this replicaset", | |
"note": "This metric aligns with the `availableReplicas` field of the\n[K8s ReplicaSetStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#replicasetstatus-v1-apps).\n\nThis metric SHOULD, at a minimum, be reported against a\n[`k8s.replicaset`](../resource/k8s.md#replicaset) resource.\n", | |
"instrument": "updowncounter", | |
"unit": "{pod}", | |
"entity_associations": [ | |
"k8s.replicaset" | |
] | |
}, | |
{ | |
"id": "metric.k8s.replicationcontroller.desired_pods", | |
"type": "metric", | |
"metric_name": "k8s.replicationcontroller.desired_pods", | |
"stability": "development", | |
"brief": "Number of desired replica pods in this replication controller", | |
"note": "This metric aligns with the `replicas` field of the\n[K8s ReplicationControllerSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#replicationcontrollerspec-v1-core)\n\nThis metric SHOULD, at a minimum, be reported against a\n[`k8s.replicationcontroller`](../resource/k8s.md#replicationcontroller) resource.\n", | |
"instrument": "updowncounter", | |
"unit": "{pod}", | |
"entity_associations": [ | |
"k8s.replicationcontroller" | |
] | |
}, | |
{ | |
"id": "metric.k8s.replicationcontroller.available_pods", | |
"type": "metric", | |
"metric_name": "k8s.replicationcontroller.available_pods", | |
"stability": "development", | |
"brief": "Total number of available replica pods (ready for at least minReadySeconds) targeted by this replication controller", | |
"note": "This metric aligns with the `availableReplicas` field of the\n[K8s ReplicationControllerStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#replicationcontrollerstatus-v1-core)\n\nThis metric SHOULD, at a minimum, be reported against a\n[`k8s.replicationcontroller`](../resource/k8s.md#replicationcontroller) resource.\n", | |
"instrument": "updowncounter", | |
"unit": "{pod}", | |
"entity_associations": [ | |
"k8s.replicationcontroller" | |
] | |
}, | |
{ | |
"id": "metric.k8s.statefulset.desired_pods", | |
"type": "metric", | |
"metric_name": "k8s.statefulset.desired_pods", | |
"stability": "development", | |
"brief": "Number of desired replica pods in this statefulset", | |
"note": "This metric aligns with the `replicas` field of the\n[K8s StatefulSetSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#statefulsetspec-v1-apps).\n\nThis metric SHOULD, at a minimum, be reported against a\n[`k8s.statefulset`](../resource/k8s.md#statefulset) resource.\n", | |
"instrument": "updowncounter", | |
"unit": "{pod}" | |
}, | |
{ | |
"id": "metric.k8s.statefulset.ready_pods", | |
"type": "metric", | |
"metric_name": "k8s.statefulset.ready_pods", | |
"stability": "development", | |
"brief": "The number of replica pods created for this statefulset with a Ready Condition", | |
"note": "This metric aligns with the `readyReplicas` field of the\n[K8s StatefulSetStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#statefulsetstatus-v1-apps).\n\nThis metric SHOULD, at a minimum, be reported against a\n[`k8s.statefulset`](../resource/k8s.md#statefulset) resource.\n", | |
"instrument": "updowncounter", | |
"unit": "{pod}", | |
"entity_associations": [ | |
"k8s.statefulset" | |
] | |
}, | |
{ | |
"id": "metric.k8s.statefulset.current_pods", | |
"type": "metric", | |
"metric_name": "k8s.statefulset.current_pods", | |
"stability": "development", | |
"brief": "The number of replica pods created by the statefulset controller from the statefulset version indicated by currentRevision", | |
"note": "This metric aligns with the `currentReplicas` field of the\n[K8s StatefulSetStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#statefulsetstatus-v1-apps).\n\nThis metric SHOULD, at a minimum, be reported against a\n[`k8s.statefulset`](../resource/k8s.md#statefulset) resource.\n", | |
"instrument": "updowncounter", | |
"unit": "{pod}", | |
"entity_associations": [ | |
"k8s.statefulset" | |
] | |
}, | |
{ | |
"id": "metric.k8s.statefulset.updated_pods", | |
"type": "metric", | |
"metric_name": "k8s.statefulset.updated_pods", | |
"stability": "development", | |
"brief": "Number of replica pods created by the statefulset controller from the statefulset version indicated by updateRevision", | |
"note": "This metric aligns with the `updatedReplicas` field of the\n[K8s StatefulSetStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#statefulsetstatus-v1-apps).\n\nThis metric SHOULD, at a minimum, be reported against a\n[`k8s.statefulset`](../resource/k8s.md#statefulset) resource.\n", | |
"instrument": "updowncounter", | |
"unit": "{pod}", | |
"entity_associations": [ | |
"k8s.statefulset" | |
] | |
}, | |
{ | |
"id": "metric.k8s.hpa.desired_pods", | |
"type": "metric", | |
"metric_name": "k8s.hpa.desired_pods", | |
"stability": "development", | |
"brief": "Desired number of replica pods managed by this horizontal pod autoscaler, as last calculated by the autoscaler", | |
"note": "This metric aligns with the `desiredReplicas` field of the\n[K8s HorizontalPodAutoscalerStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#horizontalpodautoscalerstatus-v2-autoscaling)\n\nThis metric SHOULD, at a minimum, be reported against a\n[`k8s.hpa`](../resource/k8s.md#horizontalpodautoscaler) resource.\n", | |
"instrument": "updowncounter", | |
"unit": "{pod}", | |
"entity_associations": [ | |
"k8s.hpa" | |
] | |
}, | |
{ | |
"id": "metric.k8s.hpa.current_pods", | |
"type": "metric", | |
"metric_name": "k8s.hpa.current_pods", | |
"stability": "development", | |
"brief": "Current number of replica pods managed by this horizontal pod autoscaler, as last seen by the autoscaler", | |
"note": "This metric aligns with the `currentReplicas` field of the\n[K8s HorizontalPodAutoscalerStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#horizontalpodautoscalerstatus-v2-autoscaling)\n\nThis metric SHOULD, at a minimum, be reported against a\n[`k8s.hpa`](../resource/k8s.md#horizontalpodautoscaler) resource.\n", | |
"instrument": "updowncounter", | |
"unit": "{pod}", | |
"entity_associations": [ | |
"k8s.hpa" | |
] | |
}, | |
{ | |
"id": "metric.k8s.hpa.max_pods", | |
"type": "metric", | |
"metric_name": "k8s.hpa.max_pods", | |
"stability": "development", | |
"brief": "The upper limit for the number of replica pods to which the autoscaler can scale up", | |
"note": "This metric aligns with the `maxReplicas` field of the\n[K8s HorizontalPodAutoscalerSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#horizontalpodautoscalerspec-v2-autoscaling)\n\nThis metric SHOULD, at a minimum, be reported against a\n[`k8s.hpa`](../resource/k8s.md#horizontalpodautoscaler) resource.\n", | |
"instrument": "updowncounter", | |
"unit": "{pod}", | |
"entity_associations": [ | |
"k8s.hpa" | |
] | |
}, | |
{ | |
"id": "metric.k8s.hpa.min_pods", | |
"type": "metric", | |
"metric_name": "k8s.hpa.min_pods", | |
"stability": "development", | |
"brief": "The lower limit for the number of replica pods to which the autoscaler can scale down", | |
"note": "This metric aligns with the `minReplicas` field of the\n[K8s HorizontalPodAutoscalerSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#horizontalpodautoscalerspec-v2-autoscaling)\n\nThis metric SHOULD, at a minimum, be reported against a\n[`k8s.hpa`](../resource/k8s.md#horizontalpodautoscaler) resource.\n", | |
"instrument": "updowncounter", | |
"unit": "{pod}", | |
"entity_associations": [ | |
"k8s.hpa" | |
] | |
}, | |
{ | |
"id": "metric.k8s.daemonset.current_scheduled_nodes", | |
"type": "metric", | |
"metric_name": "k8s.daemonset.current_scheduled_nodes", | |
"stability": "development", | |
"brief": "Number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod", | |
"note": "This metric aligns with the `currentNumberScheduled` field of the\n[K8s DaemonSetStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#daemonsetstatus-v1-apps).\n\nThis metric SHOULD, at a minimum, be reported against a\n[`k8s.daemonset`](../resource/k8s.md#daemonset) resource.\n", | |
"instrument": "updowncounter", | |
"unit": "{node}", | |
"entity_associations": [ | |
"k8s.daemonset" | |
] | |
}, | |
{ | |
"id": "metric.k8s.daemonset.desired_scheduled_nodes", | |
"type": "metric", | |
"metric_name": "k8s.daemonset.desired_scheduled_nodes", | |
"stability": "development", | |
"brief": "Number of nodes that should be running the daemon pod (including nodes currently running the daemon pod)", | |
"note": "This metric aligns with the `desiredNumberScheduled` field of the\n[K8s DaemonSetStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#daemonsetstatus-v1-apps).\n\nThis metric SHOULD, at a minimum, be reported against a\n[`k8s.daemonset`](../resource/k8s.md#daemonset) resource.\n", | |
"instrument": "updowncounter", | |
"unit": "{node}", | |
"entity_associations": [ | |
"k8s.daemonset" | |
] | |
}, | |
{ | |
"id": "metric.k8s.daemonset.misscheduled_nodes", | |
"type": "metric", | |
"metric_name": "k8s.daemonset.misscheduled_nodes", | |
"stability": "development", | |
"brief": "Number of nodes that are running the daemon pod, but are not supposed to run the daemon pod", | |
"note": "This metric aligns with the `numberMisscheduled` field of the\n[K8s DaemonSetStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#daemonsetstatus-v1-apps).\n\nThis metric SHOULD, at a minimum, be reported against a\n[`k8s.daemonset`](../resource/k8s.md#daemonset) resource.\n", | |
"instrument": "updowncounter", | |
"unit": "{node}", | |
"entity_associations": [ | |
"k8s.daemonset" | |
] | |
}, | |
{ | |
"id": "metric.k8s.daemonset.ready_nodes", | |
"type": "metric", | |
"metric_name": "k8s.daemonset.ready_nodes", | |
"stability": "development", | |
"brief": "Number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready", | |
"note": "This metric aligns with the `numberReady` field of the\n[K8s DaemonSetStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#daemonsetstatus-v1-apps).\n\nThis metric SHOULD, at a minimum, be reported against a\n[`k8s.daemonset`](../resource/k8s.md#daemonset) resource.\n", | |
"instrument": "updowncounter", | |
"unit": "{node}", | |
"entity_associations": [ | |
"k8s.daemonset" | |
] | |
}, | |
{ | |
"id": "metric.k8s.job.active_pods", | |
"type": "metric", | |
"metric_name": "k8s.job.active_pods", | |
"stability": "development", | |
"brief": "The number of pending and actively running pods for a job", | |
"instrument": "updowncounter", | |
"unit": "{pod}", | |
"note": "This metric aligns with the `active` field of the\n[K8s JobStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#jobstatus-v1-batch).\n\nThis metric SHOULD, at a minimum, be reported against a\n[`k8s.job`](../resource/k8s.md#job) resource.\n", | |
"entity_associations": [ | |
"k8s.job" | |
] | |
}, | |
{ | |
"id": "metric.k8s.job.failed_pods", | |
"type": "metric", | |
"metric_name": "k8s.job.failed_pods", | |
"stability": "development", | |
"brief": "The number of pods which reached phase Failed for a job", | |
"instrument": "updowncounter", | |
"unit": "{pod}", | |
"note": "This metric aligns with the `failed` field of the\n[K8s JobStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#jobstatus-v1-batch).\n\nThis metric SHOULD, at a minimum, be reported against a\n[`k8s.job`](../resource/k8s.md#job) resource.\n", | |
"entity_associations": [ | |
"k8s.job" | |
] | |
}, | |
{ | |
"id": "metric.k8s.job.successful_pods", | |
"type": "metric", | |
"metric_name": "k8s.job.successful_pods", | |
"stability": "development", | |
"brief": "The number of pods which reached phase Succeeded for a job", | |
"instrument": "updowncounter", | |
"unit": "{pod}", | |
"note": "This metric aligns with the `succeeded` field of the\n[K8s JobStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#jobstatus-v1-batch).\n\nThis metric SHOULD, at a minimum, be reported against a\n[`k8s.job`](../resource/k8s.md#job) resource.\n", | |
"entity_associations": [ | |
"k8s.job" | |
] | |
}, | |
{ | |
"id": "metric.k8s.job.desired_successful_pods", | |
"type": "metric", | |
"metric_name": "k8s.job.desired_successful_pods", | |
"stability": "development", | |
"brief": "The desired number of successfully finished pods the job should be run with", | |
"instrument": "updowncounter", | |
"unit": "{pod}", | |
"note": "This metric aligns with the `completions` field of the\n[K8s JobSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#jobspec-v1-batch).\n\nThis metric SHOULD, at a minimum, be reported against a\n[`k8s.job`](../resource/k8s.md#job) resource.\n", | |
"entity_associations": [ | |
"k8s.job" | |
] | |
}, | |
{ | |
"id": "metric.k8s.job.max_parallel_pods", | |
"type": "metric", | |
"metric_name": "k8s.job.max_parallel_pods", | |
"stability": "development", | |
"brief": "The max desired number of pods the job should run at any given time", | |
"instrument": "updowncounter", | |
"unit": "{pod}", | |
"note": "This metric aligns with the `parallelism` field of the\n[K8s JobSpec](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#jobspec-v1-batch).\n\nThis metric SHOULD, at a minimum, be reported against a\n[`k8s.job`](../resource/k8s.md#job) resource.\n", | |
"entity_associations": [ | |
"k8s.job" | |
] | |
}, | |
{ | |
"id": "metric.k8s.cronjob.active_jobs", | |
"type": "metric", | |
"metric_name": "k8s.cronjob.active_jobs", | |
"stability": "development", | |
"brief": "The number of actively running jobs for a cronjob", | |
"instrument": "updowncounter", | |
"unit": "{job}", | |
"note": "This metric aligns with the `active` field of the\n[K8s CronJobStatus](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#cronjobstatus-v1-batch).\n\nThis metric SHOULD, at a minimum, be reported against a\n[`k8s.cronjob`](../resource/k8s.md#cronjob) resource.\n", | |
"entity_associations": [ | |
"k8s.cronjob" | |
] | |
}, | |
{ | |
"id": "metric.k8s.namespace.phase", | |
"type": "metric", | |
"metric_name": "k8s.namespace.phase", | |
"stability": "development", | |
"brief": "Describes number of K8s namespaces that are currently in a given phase.", | |
"instrument": "updowncounter", | |
"unit": "{namespace}", | |
"note": "This metric SHOULD, at a minimum, be reported against a\n[`k8s.namespace`](../resource/k8s.md#namespace) resource.\n", | |
"attributes": [ | |
"k8s.namespace.phase" | |
], | |
"entity_associations": [ | |
"k8s.namespace" | |
] | |
}, | |
{ | |
"id": "registry.k8s", | |
"type": "attribute_group", | |
"display_name": "Kubernetes Attributes", | |
"brief": "Kubernetes resource attributes.\n", | |
"attributes": [ | |
"k8s.cluster.name", | |
"k8s.cluster.uid", | |
"k8s.node.name", | |
"k8s.node.uid", | |
"k8s.node.label", | |
"k8s.node.annotation", | |
"k8s.namespace.name", | |
"k8s.namespace.label", | |
"k8s.namespace.annotation", | |
"k8s.pod.uid", | |
"k8s.pod.name", | |
"k8s.pod.label", | |
"k8s.pod.annotation", | |
"k8s.container.name", | |
"k8s.container.restart_count", | |
"k8s.container.status.last_terminated_reason", | |
"k8s.replicaset.uid", | |
"k8s.replicaset.name", | |
"k8s.replicaset.label", | |
"k8s.replicaset.annotation", | |
"k8s.replicationcontroller.uid", | |
"k8s.replicationcontroller.name", | |
"k8s.resourcequota.uid", | |
"k8s.resourcequota.name", | |
"k8s.deployment.uid", | |
"k8s.deployment.name", | |
"k8s.deployment.label", | |
"k8s.deployment.annotation", | |
"k8s.statefulset.uid", | |
"k8s.statefulset.name", | |
"k8s.statefulset.label", | |
"k8s.statefulset.annotation", | |
"k8s.daemonset.uid", | |
"k8s.daemonset.name", | |
"k8s.daemonset.label", | |
"k8s.daemonset.annotation", | |
"k8s.hpa.uid", | |
"k8s.hpa.name", | |
"k8s.job.uid", | |
"k8s.job.name", | |
"k8s.job.label", | |
"k8s.job.annotation", | |
"k8s.cronjob.uid", | |
"k8s.cronjob.name", | |
"k8s.cronjob.label", | |
"k8s.cronjob.annotation", | |
"k8s.volume.name", | |
"k8s.volume.type", | |
"k8s.namespace.phase" | |
] | |
}, | |
{ | |
"id": "entity.k8s.cluster", | |
"type": "entity", | |
"stability": "development", | |
"name": "k8s.cluster", | |
"brief": "A Kubernetes Cluster.\n", | |
"attributes": [ | |
"k8s.cluster.uid" | |
], | |
"relationships": [ | |
{ | |
"contains": "k8s.node" | |
}, | |
{ | |
"has_many": "k8s.namespace" | |
} | |
], | |
"descriptive_attributes": [ | |
"k8s.cluster.name" | |
] | |
}, | |
{ | |
"id": "entity.k8s.node", | |
"type": "entity", | |
"stability": "development", | |
"name": "k8s.node", | |
"brief": "A Kubernetes Node object.\n", | |
"attributes": [ | |
"k8s.node.uid" | |
], | |
"relationships": [ | |
{ | |
"is_a": "host" | |
}, | |
{ | |
"hosts": "k8s.pod" | |
} | |
], | |
"descriptive_attributes": [ | |
"k8s.node.name", | |
"k8s.node.label", | |
"k8s.node.annotation" | |
] | |
}, | |
{ | |
"id": "entity.k8s.namespace", | |
"type": "entity", | |
"stability": "development", | |
"name": "k8s.namespace", | |
"brief": "A Kubernetes Namespace.\n", | |
"attributes": [ | |
"k8s.namespace.name" | |
], | |
"relationships": [ | |
{ | |
"contains": "k8s.container" | |
}, | |
{ | |
"contains": "k8s.cronjob" | |
}, | |
{ | |
"contains": "k8s.daemonset" | |
}, | |
{ | |
"contains": "k8s.deployment" | |
}, | |
{ | |
"contains": "k8s.entityquota" | |
}, | |
{ | |
"contains": "k8s.hpa" | |
}, | |
{ | |
"contains": "k8s.job" | |
}, | |
{ | |
"contains": "k8s.pod" | |
}, | |
{ | |
"contains": "k8s.replicaset" | |
}, | |
{ | |
"contains": "k8s.replicationcontroller" | |
}, | |
{ | |
"contains": "k8s.resourcequota" | |
}, | |
{ | |
"contains": "k8s.statefulset" | |
} | |
], | |
"descriptive_attributes": [ | |
"k8s.namespace.label", | |
"k8s.namespace.annotation" | |
] | |
}, | |
{ | |
"id": "entity.k8s.pod", | |
"type": "entity", | |
"stability": "development", | |
"name": "k8s.pod", | |
"brief": "A Kubernetes Pod object.\n", | |
"attributes": [ | |
"k8s.pod.uid" | |
], | |
"relationships": [ | |
{ | |
"contains": "k8s.container" | |
} | |
], | |
"descriptive_attributes": [ | |
"k8s.pod.name", | |
"k8s.pod.label", | |
"k8s.pod.annotation" | |
] | |
}, | |
{ | |
"id": "entity.k8s.container", | |
"type": "entity", | |
"stability": "development", | |
"name": "k8s.container", | |
"brief": "A container in a [PodTemplate](https://kubernetes.io/docs/concepts/workloads/pods/#pod-templates).\n", | |
"attributes": [ | |
"k8s.container.name" | |
], | |
"relationships": [ | |
{ | |
"specifies": "container" | |
} | |
], | |
"descriptive_attributes": [ | |
"k8s.container.restart_count", | |
"k8s.container.status.last_terminated_reason" | |
] | |
}, | |
{ | |
"id": "entity.k8s.replicaset", | |
"type": "entity", | |
"stability": "development", | |
"name": "k8s.replicaset", | |
"brief": "A Kubernetes ReplicaSet object.\n", | |
"attributes": [ | |
"k8s.replicaset.uid" | |
], | |
"relationships": [ | |
{ | |
"owns": "k8s.pod" | |
} | |
], | |
"descriptive_attributes": [ | |
"k8s.replicaset.name", | |
"k8s.replicaset.label", | |
"k8s.replicaset.annotation" | |
] | |
}, | |
{ | |
"id": "entity.k8s.deployment", | |
"type": "entity", | |
"stability": "development", | |
"name": "k8s.deployment", | |
"brief": "A Kubernetes Deployment object.\n", | |
"attributes": [ | |
"k8s.deployment.uid" | |
], | |
"relationships": [ | |
{ | |
"owns": "k8s.daemonset" | |
}, | |
{ | |
"owns": "k8s.replicaset" | |
}, | |
{ | |
"owns": "k8s.statefulset" | |
} | |
], | |
"descriptive_attributes": [ | |
"k8s.deployment.name", | |
"k8s.deployment.label", | |
"k8s.deployment.annotation" | |
] | |
}, | |
{ | |
"id": "entity.k8s.statefulset", | |
"type": "entity", | |
"stability": "development", | |
"name": "k8s.statefulset", | |
"brief": "A Kubernetes StatefulSet object.\n", | |
"attributes": [ | |
"k8s.statefulset.uid" | |
], | |
"relationships": [ | |
{ | |
"owns": "k8s.pod" | |
} | |
], | |
"descriptive_attributes": [ | |
"k8s.statefulset.name", | |
"k8s.statefulset.label", | |
"k8s.statefulset.annotation" | |
] | |
}, | |
{ | |
"id": "entity.k8s.daemonset", | |
"type": "entity", | |
"stability": "development", | |
"name": "k8s.daemonset", | |
"brief": "A Kubernetes DaemonSet object.\n", | |
"attributes": [ | |
"k8s.daemonset.uid" | |
], | |
"relationships": [ | |
{ | |
"owns": "k8s.pod" | |
} | |
], | |
"descriptive_attributes": [ | |
"k8s.daemonset.name", | |
"k8s.daemonset.label", | |
"k8s.daemonset.annotation" | |
] | |
}, | |
{ | |
"id": "entity.k8s.job", | |
"type": "entity", | |
"stability": "development", | |
"name": "k8s.job", | |
"brief": "A Kubernetes Job object.\n", | |
"attributes": [ | |
"k8s.job.uid" | |
], | |
"descriptive_attributes": [ | |
"k8s.job.name", | |
"k8s.job.label", | |
"k8s.job.annotation" | |
] | |
}, | |
{ | |
"id": "entity.k8s.cronjob", | |
"type": "entity", | |
"stability": "development", | |
"name": "k8s.cronjob", | |
"brief": "A Kubernetes CronJob object.\n", | |
"attributes": [ | |
"k8s.cronjob.uid" | |
], | |
"descriptive_attributes": [ | |
"k8s.cronjob.name", | |
"k8s.cronjob.label", | |
"k8s.cronjob.annotation" | |
] | |
}, | |
{ | |
"id": "entity.k8s.replicationcontroller", | |
"type": "entity", | |
"stability": "development", | |
"name": "k8s.replicationcontroller", | |
"brief": "A Kubernetes ReplicationController object.\n", | |
"attributes": [ | |
"k8s.replicationcontroller.uid" | |
], | |
"descriptive_attributes": [ | |
"k8s.replicationcontroller.name" | |
] | |
}, | |
{ | |
"id": "entity.k8s.hpa", | |
"type": "entity", | |
"stability": "development", | |
"name": "k8s.hpa", | |
"brief": "A Kubernetes HorizontalPodAutoscaler object.\n", | |
"attributes": [ | |
"k8s.hpa.uid" | |
], | |
"descriptive_attributes": [ | |
"k8s.hpa.name" | |
] | |
}, | |
{ | |
"id": "entity.k8s.resourcequota", | |
"type": "entity", | |
"stability": "development", | |
"name": "k8s.resourcequota", | |
"brief": "A Kubernetes ResourceQuota object.\n", | |
"attributes": [ | |
"k8s.resourcequota.uid" | |
], | |
"descriptive_attributes": [ | |
"k8s.resourcequota.name" | |
] | |
}, | |
{ | |
"id": "common.kestrel.attributes", | |
"type": "attribute_group", | |
"brief": "Common kestrel attributes", | |
"attributes": [ | |
"server.address", | |
"server.port", | |
"network.type", | |
"network.transport" | |
] | |
}, | |
{ | |
"id": "metric.kestrel.active_connections", | |
"type": "metric", | |
"metric_name": "kestrel.active_connections", | |
"stability": "stable", | |
"brief": "Number of connections that are currently active on the server.", | |
"instrument": "updowncounter", | |
"unit": "{connection}", | |
"note": "Meter name: `Microsoft.AspNetCore.Server.Kestrel`; Added in: ASP.NET Core 8.0\n", | |
"extends": "common.kestrel.attributes" | |
}, | |
{ | |
"id": "metric.kestrel.connection.duration", | |
"type": "metric", | |
"metric_name": "kestrel.connection.duration", | |
"stability": "stable", | |
"brief": "The duration of connections on the server.", | |
"instrument": "histogram", | |
"unit": "s", | |
"note": "Meter name: `Microsoft.AspNetCore.Server.Kestrel`; Added in: ASP.NET Core 8.0\n", | |
"extends": "common.kestrel.attributes", | |
"attributes": [ | |
"network.protocol.name", | |
"network.protocol.version", | |
"tls.protocol.version", | |
"error.type" | |
] | |
}, | |
{ | |
"id": "metric.kestrel.rejected_connections", | |
"type": "metric", | |
"metric_name": "kestrel.rejected_connections", | |
"stability": "stable", | |
"brief": "Number of connections rejected by the server.", | |
"instrument": "counter", | |
"unit": "{connection}", | |
"note": "Connections are rejected when the currently active count exceeds the value configured with `MaxConcurrentConnections`.\nMeter name: `Microsoft.AspNetCore.Server.Kestrel`; Added in: ASP.NET Core 8.0\n", | |
"extends": "common.kestrel.attributes" | |
}, | |
{ | |
"id": "metric.kestrel.queued_connections", | |
"type": "metric", | |
"metric_name": "kestrel.queued_connections", | |
"stability": "stable", | |
"brief": "Number of connections that are currently queued and are waiting to start.", | |
"instrument": "updowncounter", | |
"unit": "{connection}", | |
"note": "Meter name: `Microsoft.AspNetCore.Server.Kestrel`; Added in: ASP.NET Core 8.0\n", | |
"extends": "common.kestrel.attributes" | |
}, | |
{ | |
"id": "metric.kestrel.queued_requests", | |
"type": "metric", | |
"metric_name": "kestrel.queued_requests", | |
"stability": "stable", | |
"brief": "Number of HTTP requests on multiplexed connections (HTTP/2 and HTTP/3) that are currently queued and are waiting to start.", | |
"instrument": "updowncounter", | |
"unit": "{request}", | |
"note": "Meter name: `Microsoft.AspNetCore.Server.Kestrel`; Added in: ASP.NET Core 8.0\n", | |
"extends": "common.kestrel.attributes", | |
"attributes": [ | |
"network.protocol.name", | |
"network.protocol.version" | |
] | |
}, | |
{ | |
"id": "metric.kestrel.upgraded_connections", | |
"type": "metric", | |
"metric_name": "kestrel.upgraded_connections", | |
"stability": "stable", | |
"brief": "Number of connections that are currently upgraded (WebSockets). .", | |
"instrument": "updowncounter", | |
"unit": "{connection}", | |
"note": "The counter only tracks HTTP/1.1 connections.\n\nMeter name: `Microsoft.AspNetCore.Server.Kestrel`; Added in: ASP.NET Core 8.0\n", | |
"extends": "common.kestrel.attributes" | |
}, | |
{ | |
"id": "metric.kestrel.tls_handshake.duration", | |
"type": "metric", | |
"metric_name": "kestrel.tls_handshake.duration", | |
"stability": "stable", | |
"brief": "The duration of TLS handshakes on the server.", | |
"instrument": "histogram", | |
"unit": "s", | |
"note": "Meter name: `Microsoft.AspNetCore.Server.Kestrel`; Added in: ASP.NET Core 8.0\n", | |
"extends": "common.kestrel.attributes", | |
"attributes": [ | |
"tls.protocol.version", | |
"error.type" | |
] | |
}, | |
{ | |
"id": "metric.kestrel.active_tls_handshakes", | |
"type": "metric", | |
"metric_name": "kestrel.active_tls_handshakes", | |
"stability": "stable", | |
"brief": "Number of TLS handshakes that are currently in progress on the server.", | |
"instrument": "updowncounter", | |
"unit": "{handshake}", | |
"note": "Meter name: `Microsoft.AspNetCore.Server.Kestrel`; Added in: ASP.NET Core 8.0\n", | |
"extends": "common.kestrel.attributes" | |
}, | |
{ | |
"id": "registry.linux.memory", | |
"type": "attribute_group", | |
"display_name": "Linux Memory Attributes", | |
"brief": "Describes Linux Memory attributes", | |
"attributes": [ | |
"linux.memory.slab.state" | |
] | |
}, | |
{ | |
"id": "log.record", | |
"type": "attribute_group", | |
"brief": "The attributes described in this section are rather generic. They may be used in any Log Record they apply to.\n", | |
"attributes": [ | |
"log.record.uid", | |
"log.record.original" | |
] | |
}, | |
{ | |
"id": "attributes.log", | |
"type": "attribute_group", | |
"brief": "Describes Log attributes", | |
"attributes": [ | |
"log.iostream" | |
] | |
}, | |
{ | |
"id": "attributes.log.file", | |
"type": "attribute_group", | |
"brief": "A file to which log was emitted.\n", | |
"attributes": [ | |
"log.file.name", | |
"log.file.path", | |
"log.file.name_resolved", | |
"log.file.path_resolved" | |
] | |
}, | |
{ | |
"id": "registry.log", | |
"type": "attribute_group", | |
"display_name": "General Log Attributes", | |
"brief": "This document defines log attributes\n", | |
"attributes": [ | |
"log.iostream" | |
] | |
}, | |
{ | |
"id": "registry.log.file", | |
"type": "attribute_group", | |
"display_name": "Log File Attributes", | |
"brief": "Attributes for a file to which log was emitted.\n", | |
"attributes": [ | |
"log.file.name", | |
"log.file.path", | |
"log.file.name_resolved", | |
"log.file.path_resolved" | |
] | |
}, | |
{ | |
"id": "registry.log.record", | |
"type": "attribute_group", | |
"display_name": "Log Record Attributes", | |
"brief": "This document defines the generic attributes that may be used in any Log Record.\n", | |
"attributes": [ | |
"log.record.uid", | |
"log.record.original" | |
] | |
}, | |
{ | |
"id": "attributes.messaging.common.minimal", | |
"type": "attribute_group", | |
"brief": "Common cross-signal messaging attributes.", | |
"stability": "development", | |
"attributes": [ | |
"error.type", | |
"server.address", | |
"server.port", | |
"messaging.operation.name" | |
] | |
}, | |
{ | |
"id": "metric.messaging.publish.duration", | |
"type": "metric", | |
"metric_name": "messaging.publish.duration", | |
"brief": "Deprecated. Use `messaging.client.operation.duration` instead.", | |
"deprecated": "Replaced by `messaging.client.operation.duration`.", | |
"stability": "development", | |
"instrument": "histogram", | |
"unit": "s", | |
"extends": "attributes.messaging.common.minimal" | |
}, | |
{ | |
"id": "metric.messaging.receive.duration", | |
"type": "metric", | |
"metric_name": "messaging.receive.duration", | |
"brief": "Deprecated. Use `messaging.client.operation.duration` instead.", | |
"deprecated": "Replaced by `messaging.client.operation.duration`.", | |
"stability": "development", | |
"instrument": "histogram", | |
"unit": "s", | |
"extends": "attributes.messaging.common.minimal" | |
}, | |
{ | |
"id": "metric.messaging.process.messages", | |
"type": "metric", | |
"metric_name": "messaging.process.messages", | |
"brief": "Deprecated. Use `messaging.client.consumed.messages` instead.", | |
"deprecated": "Replaced by `messaging.client.consumed.messages`.", | |
"stability": "development", | |
"instrument": "counter", | |
"unit": "{message}", | |
"extends": "attributes.messaging.common.minimal" | |
}, | |
{ | |
"id": "metric.messaging.publish.messages", | |
"type": "metric", | |
"metric_name": "messaging.publish.messages", | |
"brief": "Deprecated. Use `messaging.client.produced.messages` instead.", | |
"deprecated": "Replaced by `messaging.client.produced.messages`.", | |
"stability": "development", | |
"instrument": "counter", | |
"unit": "{message}", | |
"extends": "attributes.messaging.common.minimal" | |
}, | |
{ | |
"id": "metric.messaging.receive.messages", | |
"type": "metric", | |
"metric_name": "messaging.receive.messages", | |
"brief": "Deprecated. Use `messaging.client.consumed.messages` instead.", | |
"deprecated": "Replaced by `messaging.client.consumed.messages`.", | |
"stability": "development", | |
"instrument": "counter", | |
"unit": "{message}", | |
"extends": "attributes.messaging.common.minimal" | |
}, | |
{ | |
"id": "metric.messaging.client.published.messages", | |
"type": "metric", | |
"metric_name": "messaging.client.published.messages", | |
"brief": "Deprecated. Use `messaging.client.sent.messages` instead.", | |
"deprecated": "Replaced by `messaging.client.sent.messages`.", | |
"stability": "development", | |
"instrument": "counter", | |
"unit": "{message}", | |
"extends": "metric.messaging.attributes" | |
}, | |
{ | |
"id": "registry.messaging.deprecated", | |
"type": "attribute_group", | |
"stability": "development", | |
"display_name": "Deprecated Messaging Attributes", | |
"brief": "Describes deprecated messaging attributes.", | |
"attributes": [ | |
"messaging.kafka.destination.partition", | |
"messaging.operation", | |
"messaging.client_id", | |
"messaging.kafka.consumer.group", | |
"messaging.rocketmq.client_group", | |
"messaging.eventhubs.consumer.group", | |
"messaging.servicebus.destination.subscription_name", | |
"messaging.kafka.message.offset", | |
"messaging.destination_publish.anonymous", | |
"messaging.destination_publish.name" | |
] | |
}, | |
{ | |
"id": "metric.messaging.attributes", | |
"type": "attribute_group", | |
"stability": "development", | |
"brief": "Common messaging metrics attributes.", | |
"extends": "attributes.messaging.common.minimal", | |
"attributes": [ | |
"messaging.system", | |
"messaging.destination.partition.id", | |
"messaging.destination.name", | |
"messaging.destination.template" | |
] | |
}, | |
{ | |
"id": "metric.messaging.consumer.attributes", | |
"type": "attribute_group", | |
"stability": "development", | |
"brief": "Messaging consumer metrics attributes.", | |
"extends": "metric.messaging.attributes", | |
"attributes": [ | |
"messaging.consumer.group.name", | |
"messaging.destination.subscription.name" | |
] | |
}, | |
{ | |
"id": "metric.messaging.client.operation.duration", | |
"type": "metric", | |
"metric_name": "messaging.client.operation.duration", | |
"brief": "Duration of messaging operation initiated by a producer or consumer client.", | |
"note": "This metric SHOULD NOT be used to report processing duration - processing duration is reported in `messaging.process.duration` metric.\n", | |
"stability": "development", | |
"instrument": "histogram", | |
"unit": "s", | |
"extends": "metric.messaging.consumer.attributes", | |
"attributes": [ | |
"messaging.operation.type", | |
"messaging.operation.name" | |
] | |
}, | |
{ | |
"id": "metric.messaging.process.duration", | |
"type": "metric", | |
"metric_name": "messaging.process.duration", | |
"brief": "Duration of processing operation.", | |
"note": "This metric MUST be reported for operations with `messaging.operation.type` that matches `process`.\n", | |
"stability": "development", | |
"instrument": "histogram", | |
"unit": "s", | |
"extends": "metric.messaging.consumer.attributes", | |
"attributes": [ | |
"messaging.operation.name" | |
] | |
}, | |
{ | |
"id": "metric.messaging.client.sent.messages", | |
"type": "metric", | |
"metric_name": "messaging.client.sent.messages", | |
"brief": "Number of messages producer attempted to send to the broker.", | |
"note": "This metric MUST NOT count messages that were created but haven't yet been sent.\n", | |
"stability": "development", | |
"instrument": "counter", | |
"unit": "{message}", | |
"extends": "metric.messaging.attributes", | |
"attributes": [ | |
"messaging.operation.name" | |
] | |
}, | |
{ | |
"id": "metric.messaging.client.consumed.messages", | |
"type": "metric", | |
"metric_name": "messaging.client.consumed.messages", | |
"brief": "Number of messages that were delivered to the application.", | |
"note": "Records the number of messages pulled from the broker or number of messages dispatched to the application in push-based scenarios.\nThe metric SHOULD be reported once per message delivery. For example, if receiving and processing operations are both instrumented for a single message delivery, this counter is incremented when the message is received and not reported when it is processed.\n", | |
"stability": "development", | |
"instrument": "counter", | |
"unit": "{message}", | |
"extends": "metric.messaging.consumer.attributes", | |
"attributes": [ | |
"messaging.operation.name" | |
] | |
}, | |
{ | |
"id": "registry.messaging", | |
"type": "attribute_group", | |
"stability": "development", | |
"display_name": "General Messaging Attributes", | |
"brief": "Attributes describing telemetry around messaging systems and messaging activities.", | |
"attributes": [ | |
"messaging.batch.message_count", | |
"messaging.client.id", | |
"messaging.consumer.group.name", | |
"messaging.destination.name", | |
"messaging.destination.subscription.name", | |
"messaging.destination.template", | |
"messaging.destination.anonymous", | |
"messaging.destination.temporary", | |
"messaging.destination.partition.id", | |
"messaging.message.conversation_id", | |
"messaging.message.envelope.size", | |
"messaging.message.id", | |
"messaging.message.body.size", | |
"messaging.operation.type", | |
"messaging.operation.name", | |
"messaging.system" | |
] | |
}, | |
{ | |
"id": "registry.messaging.kafka", | |
"type": "attribute_group", | |
"display_name": "Kafka Attributes", | |
"brief": "This group describes attributes specific to Apache Kafka.\n", | |
"attributes": [ | |
"messaging.kafka.message.key", | |
"messaging.kafka.offset", | |
"messaging.kafka.message.tombstone" | |
] | |
}, | |
{ | |
"id": "registry.messaging.rabbitmq", | |
"type": "attribute_group", | |
"display_name": "RabbitMQ Attributes", | |
"brief": "This group describes attributes specific to RabbitMQ.\n", | |
"attributes": [ | |
"messaging.rabbitmq.destination.routing_key", | |
"messaging.rabbitmq.message.delivery_tag" | |
] | |
}, | |
{ | |
"id": "registry.messaging.rocketmq", | |
"type": "attribute_group", | |
"display_name": "RocketMQ Attributes", | |
"brief": "This group describes attributes specific to RocketMQ.\n", | |
"attributes": [ | |
"messaging.rocketmq.consumption_model", | |
"messaging.rocketmq.message.delay_time_level", | |
"messaging.rocketmq.message.delivery_timestamp", | |
"messaging.rocketmq.message.group", | |
"messaging.rocketmq.message.keys", | |
"messaging.rocketmq.message.tag", | |
"messaging.rocketmq.message.type", | |
"messaging.rocketmq.namespace" | |
] | |
}, | |
{ | |
"id": "registry.messaging.gcp_pubsub", | |
"type": "attribute_group", | |
"display_name": "GCP Pub/Sub Attributes", | |
"brief": "This group describes attributes specific to GCP Pub/Sub.\n", | |
"attributes": [ | |
"messaging.gcp_pubsub.message.ordering_key", | |
"messaging.gcp_pubsub.message.ack_id", | |
"messaging.gcp_pubsub.message.ack_deadline", | |
"messaging.gcp_pubsub.message.delivery_attempt" | |
] | |
}, | |
{ | |
"id": "registry.messaging.servicebus", | |
"type": "attribute_group", | |
"display_name": "Azure Service Bus Attributes", | |
"brief": "This group describes attributes specific to Azure Service Bus.\n", | |
"attributes": [ | |
"messaging.servicebus.message.delivery_count", | |
"messaging.servicebus.message.enqueued_time", | |
"messaging.servicebus.disposition_status" | |
] | |
}, | |
{ | |
"id": "registry.messaging.eventhubs", | |
"type": "attribute_group", | |
"display_name": "Azure Event Hubs Attributes", | |
"brief": "This group describes attributes specific to Azure Event Hubs.\n", | |
"attributes": [ | |
"messaging.eventhubs.message.enqueued_time" | |
] | |
}, | |
{ | |
"id": "attributes.messaging.trace.minimal", | |
"type": "attribute_group", | |
"stability": "development", | |
"brief": "Defines minimal set of attributes used by all messaging systems.\n", | |
"extends": "attributes.messaging.common.minimal", | |
"attributes": [ | |
"messaging.operation.name", | |
"messaging.operation.type", | |
"messaging.destination.name", | |
"messaging.message.id", | |
"server.address", | |
"server.port" | |
] | |
}, | |
{ | |
"id": "messaging.attributes", | |
"type": "attribute_group", | |
"stability": "development", | |
"brief": "Defines a full set of attributes used in messaging systems.\n", | |
"extends": "attributes.messaging.trace.minimal", | |
"attributes": [ | |
"messaging.system", | |
"messaging.client.id", | |
"messaging.destination.partition.id", | |
"messaging.destination.template", | |
"messaging.destination.temporary", | |
"messaging.destination.anonymous", | |
"messaging.consumer.group.name", | |
"messaging.destination.subscription.name", | |
"messaging.message.conversation_id", | |
"messaging.message.envelope.size", | |
"messaging.message.body.size", | |
"messaging.batch.message_count", | |
"network.peer.address", | |
"network.peer.port" | |
] | |
}, | |
{ | |
"id": "messaging.network.attributes", | |
"type": "attribute_group", | |
"stability": "development", | |
"brief": "Attributes that describe messaging operation along with network information.", | |
"extends": "attributes.messaging.trace.minimal", | |
"attributes": [ | |
"network.peer.address", | |
"network.peer.port" | |
] | |
}, | |
{ | |
"id": "messaging.rabbitmq", | |
"type": "attribute_group", | |
"stability": "development", | |
"extends": "messaging.network.attributes", | |
"brief": "Attributes for RabbitMQ\n", | |
"attributes": [ | |
"messaging.rabbitmq.destination.routing_key", | |
"messaging.rabbitmq.message.delivery_tag", | |
"messaging.message.conversation_id", | |
"messaging.message.body.size", | |
"messaging.destination.name" | |
] | |
}, | |
{ | |
"id": "messaging.kafka", | |
"type": "attribute_group", | |
"stability": "development", | |
"extends": "attributes.messaging.trace.minimal", | |
"brief": "Attributes for Apache Kafka\n", | |
"attributes": [ | |
"messaging.consumer.group.name", | |
"messaging.destination.partition.id", | |
"messaging.kafka.message.key", | |
"messaging.kafka.offset", | |
"messaging.kafka.message.tombstone", | |
"messaging.batch.message_count", | |
"messaging.client.id", | |
"messaging.message.body.size" | |
] | |
}, | |
{ | |
"id": "messaging.rocketmq", | |
"type": "attribute_group", | |
"stability": "development", | |
"extends": "attributes.messaging.trace.minimal", | |
"brief": "Attributes for Apache RocketMQ\n", | |
"attributes": [ | |
"messaging.consumer.group.name", | |
"messaging.rocketmq.namespace", | |
"messaging.rocketmq.message.delivery_timestamp", | |
"messaging.rocketmq.message.delay_time_level", | |
"messaging.rocketmq.message.group", | |
"messaging.rocketmq.message.type", | |
"messaging.rocketmq.message.tag", | |
"messaging.rocketmq.message.keys", | |
"messaging.rocketmq.consumption_model", | |
"messaging.client.id", | |
"messaging.message.body.size", | |
"messaging.batch.message_count" | |
] | |
}, | |
{ | |
"id": "messaging.gcp_pubsub", | |
"type": "attribute_group", | |
"stability": "development", | |
"extends": "attributes.messaging.trace.minimal", | |
"brief": "Attributes for Google Cloud Pub/Sub\n", | |
"attributes": [ | |
"messaging.destination.subscription.name", | |
"messaging.gcp_pubsub.message.ordering_key", | |
"messaging.gcp_pubsub.message.delivery_attempt", | |
"messaging.gcp_pubsub.message.ack_deadline", | |
"messaging.gcp_pubsub.message.ack_id", | |
"messaging.batch.message_count", | |
"messaging.operation.name" | |
] | |
}, | |
{ | |
"id": "messaging.servicebus", | |
"type": "attribute_group", | |
"stability": "development", | |
"extends": "attributes.messaging.trace.minimal", | |
"brief": "Attributes for Azure Service Bus\n", | |
"attributes": [ | |
"messaging.destination.subscription.name", | |
"messaging.servicebus.message.delivery_count", | |
"messaging.servicebus.message.enqueued_time", | |
"messaging.servicebus.disposition_status", | |
"messaging.message.conversation_id", | |
"messaging.batch.message_count", | |
"messaging.operation.name" | |
] | |
}, | |
{ | |
"id": "messaging.eventhubs", | |
"type": "attribute_group", | |
"stability": "development", | |
"extends": "attributes.messaging.trace.minimal", | |
"brief": "Attributes for Azure Event Hubs\n", | |
"attributes": [ | |
"messaging.consumer.group.name", | |
"messaging.destination.partition.id", | |
"messaging.eventhubs.message.enqueued_time", | |
"messaging.batch.message_count", | |
"messaging.operation.name" | |
] | |
}, | |
{ | |
"id": "network-core", | |
"type": "attribute_group", | |
"brief": "These attributes may be used for any network related operation.\n", | |
"attributes": [ | |
"network.transport", | |
"network.type", | |
"network.protocol.name", | |
"network.protocol.version", | |
"network.peer.address", | |
"network.peer.port", | |
"network.local.address", | |
"network.local.port" | |
] | |
}, | |
{ | |
"id": "network-connection-and-carrier", | |
"type": "attribute_group", | |
"brief": "These attributes may be used for any network related operation.\n", | |
"attributes": [ | |
"network.connection.type", | |
"network.connection.subtype", | |
"network.carrier.name", | |
"network.carrier.mcc", | |
"network.carrier.mnc", | |
"network.carrier.icc" | |
] | |
}, | |
{ | |
"id": "registry.network.deprecated", | |
"type": "attribute_group", | |
"display_name": "Deprecated Network Attributes", | |
"brief": "These attributes may be used for any network related operation.\n", | |
"attributes": [ | |
"net.sock.peer.name", | |
"net.sock.peer.addr", | |
"net.sock.peer.port", | |
"net.peer.name", | |
"net.peer.port", | |
"net.peer.ip", | |
"net.host.name", | |
"net.host.ip", | |
"net.host.port", | |
"net.sock.host.addr", | |
"net.sock.host.port", | |
"net.transport", | |
"net.protocol.name", | |
"net.protocol.version", | |
"net.sock.family" | |
] | |
}, | |
{ | |
"id": "registry.network", | |
"type": "attribute_group", | |
"display_name": "Network Attributes", | |
"brief": "These attributes may be used for any network related operation.\n", | |
"attributes": [ | |
"network.carrier.icc", | |
"network.carrier.mcc", | |
"network.carrier.mnc", | |
"network.carrier.name", | |
"network.connection.subtype", | |
"network.connection.type", | |
"network.local.address", | |
"network.local.port", | |
"network.peer.address", | |
"network.peer.port", | |
"network.protocol.name", | |
"network.protocol.version", | |
"network.transport", | |
"network.type", | |
"network.io.direction", | |
"network.interface.name", | |
"network.connection.state" | |
] | |
}, | |
{ | |
"id": "metric.nodejs.eventloop.delay.min", | |
"type": "metric", | |
"metric_name": "nodejs.eventloop.delay.min", | |
"brief": "Event loop minimum delay.", | |
"instrument": "gauge", | |
"unit": "s", | |
"stability": "development", | |
"note": "Value can be retrieved from value `histogram.min` of [`perf_hooks.monitorEventLoopDelay([options])`](https://nodejs.org/api/perf_hooks.html#perf_hooksmonitoreventloopdelayoptions)\n" | |
}, | |
{ | |
"id": "metric.nodejs.eventloop.delay.max", | |
"type": "metric", | |
"metric_name": "nodejs.eventloop.delay.max", | |
"brief": "Event loop maximum delay.", | |
"instrument": "gauge", | |
"unit": "s", | |
"stability": "development", | |
"note": "Value can be retrieved from value `histogram.max` of [`perf_hooks.monitorEventLoopDelay([options])`](https://nodejs.org/api/perf_hooks.html#perf_hooksmonitoreventloopdelayoptions)\n" | |
}, | |
{ | |
"id": "metric.nodejs.eventloop.delay.mean", | |
"type": "metric", | |
"metric_name": "nodejs.eventloop.delay.mean", | |
"brief": "Event loop mean delay.", | |
"instrument": "gauge", | |
"unit": "s", | |
"stability": "development", | |
"note": "Value can be retrieved from value `histogram.mean` of [`perf_hooks.monitorEventLoopDelay([options])`](https://nodejs.org/api/perf_hooks.html#perf_hooksmonitoreventloopdelayoptions)\n" | |
}, | |
{ | |
"id": "metric.nodejs.eventloop.delay.stddev", | |
"type": "metric", | |
"metric_name": "nodejs.eventloop.delay.stddev", | |
"brief": "Event loop standard deviation delay.", | |
"instrument": "gauge", | |
"unit": "s", | |
"stability": "development", | |
"note": "Value can be retrieved from value `histogram.stddev` of [`perf_hooks.monitorEventLoopDelay([options])`](https://nodejs.org/api/perf_hooks.html#perf_hooksmonitoreventloopdelayoptions)\n" | |
}, | |
{ | |
"id": "metric.nodejs.eventloop.delay.p50", | |
"type": "metric", | |
"metric_name": "nodejs.eventloop.delay.p50", | |
"brief": "Event loop 50 percentile delay.", | |
"instrument": "gauge", | |
"unit": "s", | |
"stability": "development", | |
"note": "Value can be retrieved from value `histogram.percentile(50)` of [`perf_hooks.monitorEventLoopDelay([options])`](https://nodejs.org/api/perf_hooks.html#perf_hooksmonitoreventloopdelayoptions)\n" | |
}, | |
{ | |
"id": "metric.nodejs.eventloop.delay.p90", | |
"type": "metric", | |
"metric_name": "nodejs.eventloop.delay.p90", | |
"brief": "Event loop 90 percentile delay.", | |
"instrument": "gauge", | |
"unit": "s", | |
"stability": "development", | |
"note": "Value can be retrieved from value `histogram.percentile(90)` of [`perf_hooks.monitorEventLoopDelay([options])`](https://nodejs.org/api/perf_hooks.html#perf_hooksmonitoreventloopdelayoptions)\n" | |
}, | |
{ | |
"id": "metric.nodejs.eventloop.delay.p99", | |
"type": "metric", | |
"metric_name": "nodejs.eventloop.delay.p99", | |
"brief": "Event loop 99 percentile delay.", | |
"instrument": "gauge", | |
"unit": "s", | |
"stability": "development", | |
"note": "Value can be retrieved from value `histogram.percentile(99)` of [`perf_hooks.monitorEventLoopDelay([options])`](https://nodejs.org/api/perf_hooks.html#perf_hooksmonitoreventloopdelayoptions)\n" | |
}, | |
{ | |
"id": "metric.nodejs.eventloop.utilization", | |
"type": "metric", | |
"metric_name": "nodejs.eventloop.utilization", | |
"brief": "Event loop utilization.", | |
"instrument": "gauge", | |
"unit": "1", | |
"stability": "development", | |
"note": "The value range is [0.0, 1.0] and can be retrieved from [`performance.eventLoopUtilization([utilization1[, utilization2]])`](https://nodejs.org/api/perf_hooks.html#performanceeventlooputilizationutilization1-utilization2)\n" | |
}, | |
{ | |
"id": "metric.nodejs.eventloop.time", | |
"type": "metric", | |
"metric_name": "nodejs.eventloop.time", | |
"brief": "Cumulative duration of time the event loop has been in each state.", | |
"instrument": "counter", | |
"unit": "s", | |
"stability": "development", | |
"attributes": [ | |
"nodejs.eventloop.state" | |
], | |
"note": "Value can be retrieved from [`performance.eventLoopUtilization([utilization1[, utilization2]])`](https://nodejs.org/api/perf_hooks.html#performanceeventlooputilizationutilization1-utilization2)\n" | |
}, | |
{ | |
"id": "registry.nodejs", | |
"type": "attribute_group", | |
"brief": "Describes Node.js related attributes.", | |
"display_name": "Node.js Attributes", | |
"attributes": [ | |
"nodejs.eventloop.state" | |
] | |
}, | |
{ | |
"id": "registry.oci.manifest", | |
"type": "attribute_group", | |
"display_name": "Open Container Initiative (OCI) Attributes", | |
"brief": "An OCI image manifest.\n", | |
"attributes": [ | |
"oci.manifest.digest" | |
] | |
}, | |
{ | |
"id": "opentracing", | |
"type": "attribute_group", | |
"brief": "This document defines semantic conventions for the OpenTracing Shim", | |
"note": "These conventions are used by the OpenTracing Shim layer.\n", | |
"attributes": [ | |
"opentracing.ref_type" | |
] | |
}, | |
{ | |
"id": "registry.opentracing", | |
"type": "attribute_group", | |
"display_name": "OpenTracing Attributes", | |
"brief": "Attributes used by the OpenTracing Shim layer.", | |
"attributes": [ | |
"opentracing.ref_type" | |
] | |
}, | |
{ | |
"id": "registry.os", | |
"type": "attribute_group", | |
"display_name": "Operating System Attributes", | |
"brief": "The operating system (OS) on which the process represented by this resource is running.\n", | |
"note": "In case of virtualized environments, this is the operating system as it is observed by the process, i.e., the virtualized guest rather than the underlying host.\n", | |
"attributes": [ | |
"os.type", | |
"os.description", | |
"os.name", | |
"os.version", | |
"os.build_id" | |
] | |
}, | |
{ | |
"id": "resource.os", | |
"type": "resource", | |
"stability": "development", | |
"name": "os", | |
"brief": "The operating system (OS) on which the process represented by this resource is running.\n", | |
"note": "In case of virtualized environments, this is the operating system as it is observed by the process, i.e., the virtualized guest rather than the underlying host.\n", | |
"attributes": [ | |
"os.type", | |
"os.description", | |
"os.name", | |
"os.version", | |
"os.build_id" | |
] | |
}, | |
{ | |
"id": "otel_span", | |
"type": "attribute_group", | |
"brief": "Span attributes used by non-OTLP exporters or on metrics to represent OpenTelemetry Span's concepts.", | |
"attributes": [ | |
"otel.status_code", | |
"otel.status_description" | |
] | |
}, | |
{ | |
"id": "metric.otel.sdk.span.live.count", | |
"type": "metric", | |
"metric_name": "otel.sdk.span.live.count", | |
"stability": "development", | |
"deprecated": "Renamed to `otel.sdk.span.live`.", | |
"brief": "Deprecated, use `otel.sdk.span.live` instead.", | |
"instrument": "updowncounter", | |
"unit": "{span}" | |
}, | |
{ | |
"id": "metric.otel.sdk.span.ended.count", | |
"type": "metric", | |
"metric_name": "otel.sdk.span.ended.count", | |
"stability": "development", | |
"deprecated": "Renamed to `otel.sdk.span.ended`.", | |
"brief": "Deprecated, use `otel.sdk.span.ended` instead.", | |
"instrument": "counter", | |
"unit": "{span}" | |
}, | |
{ | |
"id": "metric.otel.sdk.processor.span.processed.count", | |
"type": "metric", | |
"metric_name": "otel.sdk.processor.span.processed.count", | |
"stability": "development", | |
"deprecated": "Renamed to `otel.sdk.processor.span.processed`.", | |
"brief": "Deprecated, use `otel.sdk.processor.span.processed` instead.", | |
"instrument": "updowncounter", | |
"unit": "{span}" | |
}, | |
{ | |
"id": "metric.otel.sdk.exporter.span.inflight.count", | |
"type": "metric", | |
"metric_name": "otel.sdk.exporter.span.inflight.count", | |
"stability": "development", | |
"deprecated": "Renamed to `otel.sdk.exporter.span.inflight`.", | |
"brief": "Deprecated, use `otel.sdk.exporter.span.inflight` instead.", | |
"instrument": "updowncounter", | |
"unit": "{span}" | |
}, | |
{ | |
"id": "metric.otel.sdk.exporter.span.exported.count", | |
"type": "metric", | |
"metric_name": "otel.sdk.exporter.span.exported.count", | |
"stability": "development", | |
"deprecated": "Renamed to `otel.sdk.exporter.span.exported`.", | |
"brief": "Deprecated, use `otel.sdk.exporter.span.exported` instead.", | |
"instrument": "updowncounter", | |
"unit": "{span}" | |
}, | |
{ | |
"id": "registry.otel.library.deprecated", | |
"type": "attribute_group", | |
"display_name": "Deprecated OTel Library Attributes", | |
"brief": "Describes deprecated otel.library attributes.", | |
"attributes": [ | |
"otel.library.name", | |
"otel.library.version" | |
] | |
}, | |
{ | |
"id": "metric.otel.sdk.span.live", | |
"type": "metric", | |
"metric_name": "otel.sdk.span.live", | |
"stability": "development", | |
"brief": "The number of created spans for which the end operation has not been called yet", | |
"instrument": "updowncounter", | |
"unit": "{span}", | |
"note": "For spans with `recording=true`: Implementations MUST record both `otel.sdk.span.live` and `otel.sdk.span.ended`.\nFor spans with `recording=false`: If implementations decide to record this metric, they MUST also record `otel.sdk.span.ended`.\n", | |
"attributes": [ | |
"otel.span.sampling_result" | |
] | |
}, | |
{ | |
"id": "metric.otel.sdk.span.ended", | |
"type": "metric", | |
"metric_name": "otel.sdk.span.ended", | |
"stability": "development", | |
"brief": "The number of created spans for which the end operation was called", | |
"instrument": "counter", | |
"unit": "{span}", | |
"note": "For spans with `recording=true`: Implementations MUST record both `otel.sdk.span.live` and `otel.sdk.span.ended`.\nFor spans with `recording=false`: If implementations decide to record this metric, they MUST also record `otel.sdk.span.live`.\n", | |
"attributes": [ | |
"otel.span.sampling_result" | |
] | |
}, | |
{ | |
"id": "metric.otel.sdk.processor.span.queue.size", | |
"type": "metric", | |
"metric_name": "otel.sdk.processor.span.queue.size", | |
"stability": "development", | |
"brief": "The number of spans in the queue of a given instance of an SDK span processor", | |
"note": "Only applies to span processors which use a queue, e.g. the SDK Batching Span Processor.\n", | |
"instrument": "updowncounter", | |
"unit": "{span}", | |
"attributes": [ | |
"otel.component.type", | |
"otel.component.name" | |
] | |
}, | |
{ | |
"id": "metric.otel.sdk.processor.span.queue.capacity", | |
"type": "metric", | |
"metric_name": "otel.sdk.processor.span.queue.capacity", | |
"stability": "development", | |
"brief": "The maximum number of spans the queue of a given instance of an SDK span processor can hold", | |
"note": "Only applies to span processors which use a queue, e.g. the SDK Batching Span Processor.\n", | |
"instrument": "updowncounter", | |
"unit": "{span}", | |
"attributes": [ | |
"otel.component.type", | |
"otel.component.name" | |
] | |
}, | |
{ | |
"id": "metric.otel.sdk.processor.span.processed", | |
"type": "metric", | |
"metric_name": "otel.sdk.processor.span.processed", | |
"stability": "development", | |
"brief": "The number of spans for which the processing has finished, either successful or failed", | |
"note": "For successful processing, `error.type` MUST NOT be set. For failed processing, `error.type` MUST contain the failure cause.\nFor the SDK Simple and Batching Span Processor a span is considered to be processed already when it has been submitted to the exporter, not when the corresponding export call has finished.\n", | |
"instrument": "counter", | |
"unit": "{span}", | |
"attributes": [ | |
"otel.component.type", | |
"otel.component.name", | |
"error.type" | |
] | |
}, | |
{ | |
"id": "metric.otel.sdk.exporter.span.inflight", | |
"type": "metric", | |
"metric_name": "otel.sdk.exporter.span.inflight", | |
"stability": "development", | |
"brief": "The number of spans which were passed to the exporter, but that have not been exported yet (neither successful, nor failed)", | |
"note": "For successful exports, `error.type` MUST NOT be set. For failed exports, `error.type` MUST contain the failure cause.\n", | |
"instrument": "updowncounter", | |
"unit": "{span}", | |
"attributes": [ | |
"otel.component.type", | |
"otel.component.name", | |
"server.address", | |
"server.port" | |
] | |
}, | |
{ | |
"id": "metric.otel.sdk.exporter.span.exported", | |
"type": "metric", | |
"metric_name": "otel.sdk.exporter.span.exported", | |
"stability": "development", | |
"brief": "The number of spans for which the export has finished, either successful or failed", | |
"note": "For successful exports, `error.type` MUST NOT be set. For failed exports, `error.type` MUST contain the failure cause.\nFor exporters with partial success semantics (e.g. OTLP with `rejected_spans`), rejected spans MUST count as failed and only non-rejected spans count as success.\nIf no rejection reason is available, `rejected` SHOULD be used as value for `error.type`.\n", | |
"instrument": "counter", | |
"unit": "{span}", | |
"attributes": [ | |
"otel.component.type", | |
"otel.component.name", | |
"server.address", | |
"server.port", | |
"error.type" | |
] | |
}, | |
{ | |
"id": "metric.otel.sdk.log.created", | |
"type": "metric", | |
"metric_name": "otel.sdk.log.created", | |
"stability": "development", | |
"brief": "The number of logs submitted to enabled SDK Loggers", | |
"instrument": "counter", | |
"unit": "{log_record}" | |
}, | |
{ | |
"id": "metric.otel.sdk.processor.log.queue.size", | |
"type": "metric", | |
"metric_name": "otel.sdk.processor.log.queue.size", | |
"stability": "development", | |
"brief": "The number of log records in the queue of a given instance of an SDK log processor", | |
"note": "Only applies to log record processors which use a queue, e.g. the SDK Batching Log Record Processor.\n", | |
"instrument": "updowncounter", | |
"unit": "{log_record}", | |
"attributes": [ | |
"otel.component.type", | |
"otel.component.name" | |
] | |
}, | |
{ | |
"id": "metric.otel.sdk.processor.log.queue.capacity", | |
"type": "metric", | |
"metric_name": "otel.sdk.processor.log.queue.capacity", | |
"stability": "development", | |
"brief": "The maximum number of log records the queue of a given instance of an SDK Log Record processor can hold", | |
"note": "Only applies to Log Record processors which use a queue, e.g. the SDK Batching Log Record Processor.\n", | |
"instrument": "updowncounter", | |
"unit": "{log_record}", | |
"attributes": [ | |
"otel.component.type", | |
"otel.component.name" | |
] | |
}, | |
{ | |
"id": "metric.otel.sdk.processor.log.processed", | |
"type": "metric", | |
"metric_name": "otel.sdk.processor.log.processed", | |
"stability": "development", | |
"brief": "The number of log records for which the processing has finished, either successful or failed", | |
"note": "For successful processing, `error.type` MUST NOT be set. For failed processing, `error.type` MUST contain the failure cause.\nFor the SDK Simple and Batching Log Record Processor a log record is considered to be processed already when it has been submitted to the exporter,\nnot when the corresponding export call has finished.\n", | |
"instrument": "counter", | |
"unit": "{log_record}", | |
"attributes": [ | |
"otel.component.type", | |
"otel.component.name", | |
"error.type" | |
] | |
}, | |
{ | |
"id": "metric.otel.sdk.exporter.log.inflight", | |
"type": "metric", | |
"metric_name": "otel.sdk.exporter.log.inflight", | |
"stability": "development", | |
"brief": "The number of log records which were passed to the exporter, but that have not been exported yet (neither successful, nor failed)", | |
"note": "For successful exports, `error.type` MUST NOT be set. For failed exports, `error.type` MUST contain the failure cause.\n", | |
"instrument": "updowncounter", | |
"unit": "{log_record}", | |
"attributes": [ | |
"otel.component.type", | |
"otel.component.name", | |
"server.address", | |
"server.port" | |
] | |
}, | |
{ | |
"id": "metric.otel.sdk.exporter.log.exported", | |
"type": "metric", | |
"metric_name": "otel.sdk.exporter.log.exported", | |
"stability": "development", | |
"brief": "The number of log records for which the export has finished, either successful or failed", | |
"note": "For successful exports, `error.type` MUST NOT be set. For failed exports, `error.type` MUST contain the failure cause.\nFor exporters with partial success semantics (e.g. OTLP with `rejected_log_records`), rejected log records MUST count as failed and only non-rejected log records count as success.\nIf no rejection reason is available, `rejected` SHOULD be used as value for `error.type`.\n", | |
"instrument": "counter", | |
"unit": "{log_record}", | |
"attributes": [ | |
"otel.component.type", | |
"otel.component.name", | |
"server.address", | |
"server.port", | |
"error.type" | |
] | |
}, | |
{ | |
"id": "metric.otel.sdk.exporter.metric_data_point.inflight", | |
"type": "metric", | |
"metric_name": "otel.sdk.exporter.metric_data_point.inflight", | |
"stability": "development", | |
"brief": "The number of metric data points which were passed to the exporter, but that have not been exported yet (neither successful, nor failed)", | |
"note": "For successful exports, `error.type` MUST NOT be set. For failed exports, `error.type` MUST contain the failure cause.\n", | |
"instrument": "updowncounter", | |
"unit": "{data_point}", | |
"attributes": [ | |
"otel.component.type", | |
"otel.component.name", | |
"server.address", | |
"server.port" | |
] | |
}, | |
{ | |
"id": "metric.otel.sdk.exporter.metric_data_point.exported", | |
"type": "metric", | |
"metric_name": "otel.sdk.exporter.metric_data_point.exported", | |
"stability": "development", | |
"brief": "The number of metric data points for which the export has finished, either successful or failed", | |
"note": "For successful exports, `error.type` MUST NOT be set. For failed exports, `error.type` MUST contain the failure cause.\nFor exporters with partial success semantics (e.g. OTLP with `rejected_data_points`), rejected data points MUST count as failed and only non-rejected data points count as success.\nIf no rejection reason is available, `rejected` SHOULD be used as value for `error.type`.\n", | |
"instrument": "counter", | |
"unit": "{data_point}", | |
"attributes": [ | |
"otel.component.type", | |
"otel.component.name", | |
"server.address", | |
"server.port", | |
"error.type" | |
] | |
}, | |
{ | |
"id": "metric.otel.sdk.metric_reader.collection.duration", | |
"type": "metric", | |
"metric_name": "otel.sdk.metric_reader.collection.duration", | |
"stability": "development", | |
"brief": "The duration of the collect operation of the metric reader.", | |
"note": "For successful collections, `error.type` MUST NOT be set. For failed collections, `error.type` SHOULD contain the failure cause.\nIt can happen that metrics collection is successful for some MetricProducers, while others fail. In that case `error.type` SHOULD be set to any of the failure causes.\n", | |
"instrument": "histogram", | |
"unit": "s", | |
"attributes": [ | |
"otel.component.type", | |
"otel.component.name", | |
"error.type" | |
] | |
}, | |
{ | |
"id": "metric.otel.sdk.exporter.operation.duration", | |
"type": "metric", | |
"metric_name": "otel.sdk.exporter.operation.duration", | |
"stability": "development", | |
"brief": "The duration of exporting a batch of telemetry records.", | |
"note": "This metric defines successful operations using the full success definitions for [http](https://github.com/open-telemetry/opentelemetry-proto/blob/v1.5.0/docs/specification.md#full-success-1)\nand [grpc](https://github.com/open-telemetry/opentelemetry-proto/blob/v1.5.0/docs/specification.md#full-success). Anything else is defined as an unsuccessful operation. For successful\noperations, `error.type` MUST NOT be set. For unsuccessful export operations, `error.type` MUST contain a relevant failure cause.\n", | |
"instrument": "histogram", | |
"unit": "s", | |
"attributes": [ | |
"otel.component.type", | |
"otel.component.name", | |
"server.address", | |
"server.port", | |
"error.type", | |
"http.response.status_code", | |
"rpc.grpc.status_code" | |
] | |
}, | |
{ | |
"id": "registry.otel", | |
"type": "attribute_group", | |
"display_name": "OTel Attributes", | |
"brief": "Attributes reserved for OpenTelemetry", | |
"attributes": [ | |
"otel.status_code", | |
"otel.status_description", | |
"otel.span.sampling_result" | |
] | |
}, | |
{ | |
"id": "registry.otel.scope", | |
"type": "attribute_group", | |
"display_name": "OTel Scope Attributes", | |
"brief": "Attributes used by non-OTLP exporters to represent OpenTelemetry Scope's concepts.", | |
"attributes": [ | |
"otel.scope.name", | |
"otel.scope.version" | |
] | |
}, | |
{ | |
"id": "registry.otel.component", | |
"type": "attribute_group", | |
"display_name": "OTel Component Attributes", | |
"brief": "Attributes used for OpenTelemetry component self-monitoring", | |
"attributes": [ | |
"otel.component.type", | |
"otel.component.name" | |
] | |
}, | |
{ | |
"id": "resource.otel.scope", | |
"type": "resource", | |
"stability": "development", | |
"name": "otel.scope", | |
"brief": "Attributes used by non-OTLP exporters to represent OpenTelemetry Scope's concepts.", | |
"attributes": [ | |
"otel.scope.name", | |
"otel.scope.version" | |
] | |
}, | |
{ | |
"id": "peer", | |
"type": "attribute_group", | |
"brief": "Operations that access some remote service.", | |
"attributes": [ | |
"peer.service" | |
] | |
}, | |
{ | |
"id": "registry.peer", | |
"type": "attribute_group", | |
"display_name": "Peer Attributes", | |
"brief": "Operations that access some remote service.\n", | |
"attributes": [ | |
"peer.service" | |
] | |
}, | |
{ | |
"id": "registry.process.deprecated", | |
"type": "attribute_group", | |
"brief": "Deprecated process attributes.", | |
"display_name": "Deprecated Process Attributes", | |
"attributes": [ | |
"process.cpu.state", | |
"process.executable.build_id.profiling" | |
] | |
}, | |
{ | |
"id": "metric.process.cpu.time", | |
"type": "metric", | |
"metric_name": "process.cpu.time", | |
"stability": "development", | |
"brief": "Total CPU seconds broken down by different states.", | |
"instrument": "counter", | |
"unit": "s", | |
"attributes": [ | |
"cpu.mode" | |
], | |
"entity_associations": [ | |
"process" | |
] | |
}, | |
{ | |
"id": "metric.process.cpu.utilization", | |
"type": "metric", | |
"metric_name": "process.cpu.utilization", | |
"stability": "development", | |
"brief": "Difference in process.cpu.time since the last measurement, divided by the elapsed time and number of CPUs available to the process.", | |
"instrument": "gauge", | |
"unit": "1", | |
"attributes": [ | |
"cpu.mode" | |
], | |
"entity_associations": [ | |
"process" | |
] | |
}, | |
{ | |
"id": "metric.process.memory.usage", | |
"type": "metric", | |
"metric_name": "process.memory.usage", | |
"stability": "development", | |
"brief": "The amount of physical memory in use.", | |
"instrument": "updowncounter", | |
"unit": "By", | |
"attributes": [], | |
"entity_associations": [ | |
"process" | |
] | |
}, | |
{ | |
"id": "metric.process.memory.virtual", | |
"type": "metric", | |
"metric_name": "process.memory.virtual", | |
"stability": "development", | |
"brief": "The amount of committed virtual memory.", | |
"instrument": "updowncounter", | |
"unit": "By", | |
"attributes": [], | |
"entity_associations": [ | |
"process" | |
] | |
}, | |
{ | |
"id": "metric.process.disk.io", | |
"type": "metric", | |
"metric_name": "process.disk.io", | |
"stability": "development", | |
"brief": "Disk bytes transferred.", | |
"instrument": "counter", | |
"unit": "By", | |
"attributes": [ | |
"disk.io.direction" | |
], | |
"entity_associations": [ | |
"process" | |
] | |
}, | |
{ | |
"id": "metric.process.network.io", | |
"type": "metric", | |
"metric_name": "process.network.io", | |
"stability": "development", | |
"brief": "Network bytes transferred.", | |
"instrument": "counter", | |
"unit": "By", | |
"attributes": [ | |
"network.io.direction" | |
], | |
"entity_associations": [ | |
"process" | |
] | |
}, | |
{ | |
"id": "metric.process.thread.count", | |
"type": "metric", | |
"metric_name": "process.thread.count", | |
"stability": "development", | |
"brief": "Process threads count.", | |
"instrument": "updowncounter", | |
"unit": "{thread}", | |
"entity_associations": [ | |
"process" | |
] | |
}, | |
{ | |
"id": "metric.process.open_file_descriptor.count", | |
"type": "metric", | |
"metric_name": "process.open_file_descriptor.count", | |
"stability": "development", | |
"brief": "Number of file descriptors in use by the process.", | |
"instrument": "updowncounter", | |
"unit": "{file_descriptor}", | |
"entity_associations": [ | |
"process" | |
] | |
}, | |
{ | |
"id": "metric.process.context_switches", | |
"type": "metric", | |
"metric_name": "process.context_switches", | |
"stability": "development", | |
"brief": "Number of times the process has been context switched.", | |
"instrument": "counter", | |
"unit": "{context_switch}", | |
"attributes": [ | |
"process.context_switch_type" | |
], | |
"entity_associations": [ | |
"process" | |
] | |
}, | |
{ | |
"id": "metric.process.paging.faults", | |
"type": "metric", | |
"metric_name": "process.paging.faults", | |
"stability": "development", | |
"brief": "Number of page faults the process has made.", | |
"instrument": "counter", | |
"unit": "{fault}", | |
"attributes": [ | |
"process.paging.fault_type" | |
], | |
"entity_associations": [ | |
"process" | |
] | |
}, | |
{ | |
"id": "metric.process.uptime", | |
"type": "metric", | |
"metric_name": "process.uptime", | |
"stability": "development", | |
"brief": "The time the process has been running.", | |
"note": "Instrumentations SHOULD use a gauge with type `double` and measure uptime in seconds as a floating point number with the highest precision available.\nThe actual accuracy would depend on the instrumentation and operating system.\n", | |
"instrument": "gauge", | |
"unit": "s", | |
"entity_associations": [ | |
"process" | |
] | |
}, | |
{ | |
"id": "registry.process", | |
"type": "attribute_group", | |
"display_name": "Process Attributes", | |
"brief": "An operating system process.\n", | |
"attributes": [ | |
"process.pid", | |
"process.parent_pid", | |
"process.vpid", | |
"process.session_leader.pid", | |
"process.group_leader.pid", | |
"process.executable.build_id.gnu", | |
"process.executable.build_id.go", | |
"process.executable.build_id.htlhash", | |
"process.executable.name", | |
"process.executable.path", | |
"process.command", | |
"process.command_line", | |
"process.command_args", | |
"process.args_count", | |
"process.owner", | |
"process.user.id", | |
"process.user.name", | |
"process.real_user.id", | |
"process.real_user.name", | |
"process.saved_user.id", | |
"process.saved_user.name", | |
"process.runtime.name", | |
"process.runtime.version", | |
"process.runtime.description", | |
"process.title", | |
"process.creation.time", | |
"process.exit.time", | |
"process.exit.code", | |
"process.interactive", | |
"process.working_directory", | |
"process.context_switch_type", | |
"process.paging.fault_type", | |
"process.environment_variable" | |
] | |
}, | |
{ | |
"id": "registry.process.linux", | |
"type": "attribute_group", | |
"brief": "Describes Linux Process attributes", | |
"attributes": [ | |
"process.linux.cgroup" | |
] | |
}, | |
{ | |
"id": "entity.process", | |
"type": "entity", | |
"stability": "development", | |
"name": "process", | |
"brief": "An operating system process.\n", | |
"attributes": [ | |
"process.pid", | |
"process.creation.time" | |
], | |
"relationships": [ | |
{ | |
"runs_on": "host" | |
}, | |
{ | |
"runs": "process.runtime" | |
} | |
], | |
"descriptive_attributes": [ | |
"process.parent_pid", | |
"process.executable.name", | |
"process.executable.path", | |
"process.command", | |
"process.command_line", | |
"process.command_args", | |
"process.owner", | |
"process.linux.cgroup" | |
] | |
}, | |
{ | |
"id": "entity.process.runtime", | |
"type": "entity", | |
"stability": "development", | |
"name": "process.runtime", | |
"brief": "The single (language) runtime instance which is monitored.\n", | |
"attributes": [ | |
"process.runtime.name" | |
], | |
"descriptive_attributes": [ | |
"process.runtime.version", | |
"process.runtime.description" | |
] | |
}, | |
{ | |
"id": "profile.frame", | |
"type": "attribute_group", | |
"brief": "Describes the origin of a single frame in a Profile.\n", | |
"attributes": [ | |
"profile.frame.type" | |
] | |
}, | |
{ | |
"id": "registry.profile.frame", | |
"type": "attribute_group", | |
"display_name": "Profile Frame Attributes", | |
"brief": "Describes the origin of a single frame in a Profile.\n", | |
"attributes": [ | |
"profile.frame.type" | |
] | |
}, | |
{ | |
"id": "registry.rpc.deprecated", | |
"type": "attribute_group", | |
"display_name": "Deprecated RPC Attributes", | |
"brief": "Deprecated rpc message attributes.", | |
"attributes": [ | |
"message.type", | |
"message.id", | |
"message.compressed_size", | |
"message.uncompressed_size" | |
] | |
}, | |
{ | |
"id": "attributes.metrics.rpc", | |
"type": "attribute_group", | |
"brief": "Describes RPC metric attributes.", | |
"attributes": [ | |
"rpc.system", | |
"rpc.service", | |
"rpc.method", | |
"network.transport", | |
"network.type", | |
"server.address", | |
"server.port" | |
] | |
}, | |
{ | |
"id": "metric.rpc.server.duration", | |
"type": "metric", | |
"metric_name": "rpc.server.duration", | |
"stability": "development", | |
"brief": "Measures the duration of inbound RPC.", | |
"instrument": "histogram", | |
"unit": "ms", | |
"note": "While streaming RPCs may record this metric as start-of-batch\nto end-of-batch, it's hard to interpret in practice.\n\n**Streaming**: N/A.\n" | |
}, | |
{ | |
"id": "metric.rpc.server.request.size", | |
"type": "metric", | |
"metric_name": "rpc.server.request.size", | |
"stability": "development", | |
"brief": "Measures the size of RPC request messages (uncompressed).", | |
"instrument": "histogram", | |
"unit": "By", | |
"note": "**Streaming**: Recorded per message in a streaming batch\n" | |
}, | |
{ | |
"id": "metric.rpc.server.response.size", | |
"type": "metric", | |
"metric_name": "rpc.server.response.size", | |
"stability": "development", | |
"brief": "Measures the size of RPC response messages (uncompressed).", | |
"instrument": "histogram", | |
"unit": "By", | |
"note": "**Streaming**: Recorded per response in a streaming batch\n" | |
}, | |
{ | |
"id": "metric.rpc.server.requests_per_rpc", | |
"type": "metric", | |
"metric_name": "rpc.server.requests_per_rpc", | |
"stability": "development", | |
"brief": "Measures the number of messages received per RPC.", | |
"instrument": "histogram", | |
"unit": "{count}", | |
"note": "Should be 1 for all non-streaming RPCs.\n\n**Streaming** : This metric is required for server and client streaming RPCs\n" | |
}, | |
{ | |
"id": "metric.rpc.server.responses_per_rpc", | |
"type": "metric", | |
"metric_name": "rpc.server.responses_per_rpc", | |
"stability": "development", | |
"brief": "Measures the number of messages sent per RPC.", | |
"instrument": "histogram", | |
"unit": "{count}", | |
"note": "Should be 1 for all non-streaming RPCs.\n\n**Streaming**: This metric is required for server and client streaming RPCs\n" | |
}, | |
{ | |
"id": "metric.rpc.client.duration", | |
"type": "metric", | |
"metric_name": "rpc.client.duration", | |
"stability": "development", | |
"brief": "Measures the duration of outbound RPC.", | |
"instrument": "histogram", | |
"unit": "ms", | |
"note": "While streaming RPCs may record this metric as start-of-batch\nto end-of-batch, it's hard to interpret in practice.\n\n**Streaming**: N/A.\n" | |
}, | |
{ | |
"id": "metric.rpc.client.request.size", | |
"type": "metric", | |
"metric_name": "rpc.client.request.size", | |
"stability": "development", | |
"brief": "Measures the size of RPC request messages (uncompressed).", | |
"instrument": "histogram", | |
"unit": "By", | |
"note": "**Streaming**: Recorded per message in a streaming batch\n" | |
}, | |
{ | |
"id": "metric.rpc.client.response.size", | |
"type": "metric", | |
"metric_name": "rpc.client.response.size", | |
"stability": "development", | |
"brief": "Measures the size of RPC response messages (uncompressed).", | |
"instrument": "histogram", | |
"unit": "By", | |
"note": "**Streaming**: Recorded per response in a streaming batch\n" | |
}, | |
{ | |
"id": "metric.rpc.client.requests_per_rpc", | |
"type": "metric", | |
"metric_name": "rpc.client.requests_per_rpc", | |
"stability": "development", | |
"brief": "Measures the number of messages received per RPC.", | |
"instrument": "histogram", | |
"unit": "{count}", | |
"note": "Should be 1 for all non-streaming RPCs.\n\n**Streaming**: This metric is required for server and client streaming RPCs\n" | |
}, | |
{ | |
"id": "metric.rpc.client.responses_per_rpc", | |
"type": "metric", | |
"metric_name": "rpc.client.responses_per_rpc", | |
"stability": "development", | |
"brief": "Measures the number of messages sent per RPC.", | |
"instrument": "histogram", | |
"unit": "{count}", | |
"note": "Should be 1 for all non-streaming RPCs.\n\n**Streaming**: This metric is required for server and client streaming RPCs\n" | |
}, | |
{ | |
"id": "registry.rpc", | |
"type": "attribute_group", | |
"display_name": "Remote Procedure Call (RPC) Attributes", | |
"brief": "This document defines attributes for remote procedure calls.", | |
"attributes": [ | |
"rpc.connect_rpc.error_code", | |
"rpc.connect_rpc.request.metadata", | |
"rpc.connect_rpc.response.metadata", | |
"rpc.grpc.status_code", | |
"rpc.grpc.request.metadata", | |
"rpc.grpc.response.metadata", | |
"rpc.jsonrpc.error_code", | |
"rpc.jsonrpc.error_message", | |
"rpc.jsonrpc.request_id", | |
"rpc.jsonrpc.version", | |
"rpc.method", | |
"rpc.service", | |
"rpc.system", | |
"rpc.message.type", | |
"rpc.message.id", | |
"rpc.message.compressed_size", | |
"rpc.message.uncompressed_size" | |
] | |
}, | |
{ | |
"id": "rpc", | |
"type": "attribute_group", | |
"brief": "This document defines semantic conventions for remote procedure calls.", | |
"attributes": [ | |
"rpc.system", | |
"rpc.service", | |
"rpc.method", | |
"network.transport", | |
"network.type", | |
"server.address", | |
"server.port" | |
] | |
}, | |
{ | |
"id": "span.rpc.client", | |
"type": "span", | |
"stability": "development", | |
"brief": "This span represents an outgoing Remote Procedure Call (RPC).", | |
"note": "Remote procedure calls can only be represented with these semantic conventions\nwhen the names of the called service and method are known and available.\n\n**Span name:** refer to the [Span Name](#span-name) section.\n\n**Span kind** MUST be `CLIENT`.\n", | |
"extends": "rpc", | |
"span_kind": "client", | |
"events": [ | |
"rpc.message" | |
], | |
"attributes": [ | |
"network.peer.address", | |
"network.peer.port" | |
] | |
}, | |
{ | |
"id": "span.rpc.server", | |
"type": "span", | |
"stability": "development", | |
"extends": "rpc", | |
"span_kind": "server", | |
"brief": "This span represents an incoming Remote Procedure Call (RPC).", | |
"events": [ | |
"rpc.message" | |
], | |
"note": "Remote procedure calls can only be represented with these semantic conventions\nwhen the names of the called service and method are known and available.\n\n**Span name:** refer to the [Span Name](#span-name) section.\n\n**Span kind** MUST be `SERVER`.\n", | |
"attributes": [ | |
"client.address", | |
"client.port", | |
"network.peer.address", | |
"network.peer.port", | |
"network.transport", | |
"network.type" | |
] | |
}, | |
{ | |
"id": "rpc.grpc.attributes", | |
"stability": "development", | |
"type": "attribute_group", | |
"brief": "Tech-specific attributes for gRPC.", | |
"attributes": [ | |
"rpc.grpc.status_code", | |
"rpc.grpc.request.metadata", | |
"rpc.grpc.response.metadata" | |
] | |
}, | |
{ | |
"id": "rpc.jsonrpc.attributes", | |
"type": "attribute_group", | |
"stability": "development", | |
"brief": "Tech-specific attributes for [JSON RPC](https://www.jsonrpc.org/).", | |
"attributes": [ | |
"rpc.jsonrpc.version", | |
"rpc.jsonrpc.request_id", | |
"rpc.jsonrpc.error_code", | |
"rpc.jsonrpc.error_message", | |
"rpc.method" | |
] | |
}, | |
{ | |
"id": "event.rpc.message", | |
"type": "event", | |
"stability": "development", | |
"name": "rpc.message", | |
"brief": "Describes a message sent or received within the context of an RPC call.", | |
"note": "In the lifetime of an RPC stream, an event for each message sent/received on client and server spans SHOULD be created. In case of unary calls only one sent and one received message will be recorded for both client and server spans.\n", | |
"attributes": [ | |
"rpc.message.type", | |
"rpc.message.id", | |
"rpc.message.compressed_size", | |
"rpc.message.uncompressed_size" | |
] | |
}, | |
{ | |
"id": "rpc.connect_rpc.attributes", | |
"type": "attribute_group", | |
"stability": "development", | |
"brief": "Tech-specific attributes for Connect RPC.", | |
"attributes": [ | |
"rpc.connect_rpc.error_code", | |
"rpc.connect_rpc.request.metadata", | |
"rpc.connect_rpc.response.metadata" | |
] | |
}, | |
{ | |
"id": "registry.security_rule", | |
"display_name": "Security Rule", | |
"type": "attribute_group", | |
"brief": "Describes security rule attributes. Rule fields are used to capture the specifics of any observer or agent rules that generate alerts or other notable events.\n", | |
"attributes": [ | |
"security_rule.category", | |
"security_rule.description", | |
"security_rule.license", | |
"security_rule.name", | |
"security_rule.reference", | |
"security_rule.ruleset.name", | |
"security_rule.uuid", | |
"security_rule.version" | |
] | |
}, | |
{ | |
"id": "server", | |
"type": "attribute_group", | |
"brief": "General server attributes.\n", | |
"attributes": [ | |
"server.address", | |
"server.port" | |
] | |
}, | |
{ | |
"id": "registry.server", | |
"type": "attribute_group", | |
"display_name": "Server Attributes", | |
"brief": "These attributes may be used to describe the server in a connection-based network interaction where there is one side that initiates the connection (the client is the side that initiates the connection). This covers all TCP network interactions since TCP is connection-based and one side initiates the connection (an exception is made for peer-to-peer communication over TCP where the \"user-facing\" surface of the protocol / API doesn't expose a clear notion of client and server). This also covers UDP network interactions where one side initiates the interaction, e.g. QUIC (HTTP/3) and DNS.\n", | |
"attributes": [ | |
"server.address", | |
"server.port" | |
] | |
}, | |
{ | |
"id": "entity.server", | |
"type": "entity", | |
"name": "server", | |
"brief": "A server.\n", | |
"stability": "development", | |
"attributes": [ | |
"server.address", | |
"server.port" | |
] | |
}, | |
{ | |
"id": "registry.service", | |
"type": "attribute_group", | |
"display_name": "Service Attributes", | |
"brief": "A service instance.\n", | |
"attributes": [ | |
"service.name", | |
"service.version", | |
"service.namespace", | |
"service.instance.id" | |
] | |
}, | |
{ | |
"id": "entity.service", | |
"type": "entity", | |
"name": "service", | |
"brief": "A service.\n", | |
"stability": "stable", | |
"attributes": [ | |
"service.name" | |
], | |
"relationships": [ | |
{ | |
"has_many": "service.instance" | |
}, | |
{ | |
"has_many": "deployment.environment" | |
}, | |
{ | |
"instrumented_by": "telemetry.sdk" | |
}, | |
{ | |
"instrumented_by": "telemetry.distro" | |
} | |
], | |
"descriptive_attributes": [ | |
"service.version", | |
"service.namespace" | |
] | |
}, | |
{ | |
"id": "entity.service.instance", | |
"type": "entity", | |
"name": "service.instance", | |
"brief": "A service instance.\n", | |
"stability": "development", | |
"attributes": [ | |
"service.instance.id" | |
], | |
"relationships": [ | |
{ | |
"runs_on": "host" | |
} | |
] | |
}, | |
{ | |
"id": "session-id", | |
"type": "attribute_group", | |
"brief": "Session is defined as the period of time encompassing all activities performed by the application and the actions executed by the end user.\nConsequently, a Session is represented as a collection of Logs, Events, and Spans emitted by the Client Application throughout the Session's duration. Each Session is assigned a unique identifier, which is included as an attribute in the Logs, Events, and Spans generated during the Session's lifecycle.\nWhen a session reaches end of life, typically due to user inactivity or session timeout, a new session identifier will be assigned. The previous session identifier may be provided by the instrumentation so that telemetry backends can link the two sessions.\n", | |
"attributes": [ | |
"session.id", | |
"session.previous_id" | |
] | |
}, | |
{ | |
"id": "event.session.start", | |
"stability": "development", | |
"type": "event", | |
"name": "session.start", | |
"brief": "Indicates that a new session has been started, optionally linking to the prior session.\n", | |
"note": "For instrumentation that tracks user behavior during user sessions, a `session.start` event MUST be emitted every time a session is created. When a new session is created as a continuation of a prior session, the `session.previous_id` SHOULD be included in the event. The values of `session.id` and `session.previous_id` MUST be different.\nWhen the `session.start` event contains both `session.id` and `session.previous_id` fields, the event indicates that the previous session has ended. If the session ID in `session.previous_id` has not yet ended via explicit `session.end` event, then the consumer SHOULD treat this continuation event as semantically equivalent to `session.end(session.previous_id)` and `session.start(session.id)`.\n", | |
"attributes": [ | |
"session.id", | |
"session.previous_id" | |
] | |
}, | |
{ | |
"id": "event.session.end", | |
"stability": "development", | |
"type": "event", | |
"name": "session.end", | |
"brief": "Indicates that a session has ended.\n", | |
"note": "For instrumentation that tracks user behavior during user sessions, a `session.end` event SHOULD be emitted every time a session ends. When a session ends and continues as a new session, this event SHOULD be emitted prior to the `session.start` event.\n", | |
"attributes": [ | |
"session.id" | |
] | |
}, | |
{ | |
"id": "registry.session", | |
"type": "attribute_group", | |
"display_name": "Session Attributes", | |
"brief": "Session is defined as the period of time encompassing all activities performed by the application and the actions executed by the end user.\nConsequently, a Session is represented as a collection of Logs, Events, and Spans emitted by the Client Application throughout the Session's duration. Each Session is assigned a unique identifier, which is included as an attribute in the Logs, Events, and Spans generated during the Session's lifecycle.\nWhen a session reaches end of life, typically due to user inactivity or session timeout, a new session identifier will be assigned. The previous session identifier may be provided by the instrumentation so that telemetry backends can link the two sessions.\n", | |
"attributes": [ | |
"session.id", | |
"session.previous_id" | |
] | |
}, | |
{ | |
"id": "metric.signalr.server.connection.duration", | |
"type": "metric", | |
"metric_name": "signalr.server.connection.duration", | |
"stability": "stable", | |
"brief": "The duration of connections on the server.", | |
"instrument": "histogram", | |
"unit": "s", | |
"note": "Meter name: `Microsoft.AspNetCore.Http.Connections`; Added in: ASP.NET Core 8.0\n", | |
"attributes": [ | |
"signalr.connection.status", | |
"signalr.transport" | |
] | |
}, | |
{ | |
"id": "metric.signalr.server.active_connections", | |
"type": "metric", | |
"metric_name": "signalr.server.active_connections", | |
"stability": "stable", | |
"brief": "Number of connections that are currently active on the server.", | |
"instrument": "updowncounter", | |
"unit": "{connection}", | |
"note": "Meter name: `Microsoft.AspNetCore.Http.Connections`; Added in: ASP.NET Core 8.0\n", | |
"attributes": [ | |
"signalr.connection.status", | |
"signalr.transport" | |
] | |
}, | |
{ | |
"id": "registry.signalr", | |
"type": "attribute_group", | |
"display_name": "SignalR Attributes", | |
"brief": "SignalR attributes", | |
"attributes": [ | |
"signalr.connection.status", | |
"signalr.transport" | |
] | |
}, | |
{ | |
"id": "source", | |
"type": "attribute_group", | |
"brief": "General source attributes.\n", | |
"attributes": [ | |
"source.address", | |
"source.port" | |
] | |
}, | |
{ | |
"id": "registry.source", | |
"type": "attribute_group", | |
"display_name": "Source Attributes", | |
"brief": "These attributes may be used to describe the sender of a network exchange/packet. These should be used when there is no client/server relationship between the two sides, or when that relationship is unknown. This covers low-level network interactions (e.g. packet tracing) where you don't know if there was a connection or which side initiated it. This also covers unidirectional UDP flows and peer-to-peer communication where the \"user-facing\" surface of the protocol / API doesn't expose a clear notion of client and server.\n", | |
"attributes": [ | |
"source.address", | |
"source.port" | |
] | |
}, | |
{ | |
"id": "metric.system.cpu.time", | |
"type": "metric", | |
"metric_name": "system.cpu.time", | |
"brief": "Deprecated. Use `cpu.time` instead.", | |
"deprecated": "Replaced by `cpu.time`.", | |
"stability": "experimental", | |
"instrument": "counter", | |
"unit": "s" | |
}, | |
{ | |
"id": "metric.system.cpu.utilization", | |
"type": "metric", | |
"metric_name": "system.cpu.utilization", | |
"brief": "Deprecated. Use `cpu.utilization` instead.", | |
"deprecated": "Replaced by `cpu.utilization`.", | |
"stability": "experimental", | |
"instrument": "gauge", | |
"unit": "1" | |
}, | |
{ | |
"id": "metric.system.cpu.frequency", | |
"type": "metric", | |
"metric_name": "system.cpu.frequency", | |
"brief": "Deprecated. Use `cpu.frequency` instead.", | |
"deprecated": "Replaced by `cpu.frequency`.", | |
"stability": "experimental", | |
"instrument": "gauge", | |
"unit": "{Hz}" | |
}, | |
{ | |
"id": "registry.system.deprecated", | |
"type": "attribute_group", | |
"display_name": "Deprecated System Attributes", | |
"brief": "Deprecated system attributes.", | |
"attributes": [ | |
"system.processes.status", | |
"system.cpu.state", | |
"system.network.state", | |
"system.cpu.logical_number" | |
] | |
}, | |
{ | |
"id": "metric.system.uptime", | |
"type": "metric", | |
"metric_name": "system.uptime", | |
"stability": "development", | |
"brief": "The time the system has been running", | |
"note": "Instrumentations SHOULD use a gauge with type `double` and measure uptime in seconds as a floating point number with the highest precision available.\nThe actual accuracy would depend on the instrumentation and operating system.\n", | |
"instrument": "gauge", | |
"unit": "s", | |
"entity_associations": [ | |
"host" | |
] | |
}, | |
{ | |
"id": "metric.system.cpu.physical.count", | |
"type": "metric", | |
"metric_name": "system.cpu.physical.count", | |
"stability": "development", | |
"brief": "Reports the number of actual physical processor cores on the hardware", | |
"note": "Calculated by multiplying the number of sockets by the number of cores per socket", | |
"instrument": "updowncounter", | |
"unit": "{cpu}", | |
"attributes": [], | |
"entity_associations": [ | |
"host" | |
] | |
}, | |
{ | |
"id": "metric.system.cpu.logical.count", | |
"type": "metric", | |
"metric_name": "system.cpu.logical.count", | |
"stability": "development", | |
"brief": "Reports the number of logical (virtual) processor cores created by the operating system to manage multitasking", | |
"note": "Calculated by multiplying the number of sockets by the number of cores per socket, and then by the number of threads per core", | |
"instrument": "updowncounter", | |
"unit": "{cpu}", | |
"attributes": [], | |
"entity_associations": [ | |
"host" | |
] | |
}, | |
{ | |
"id": "metric.system.memory.usage", | |
"type": "metric", | |
"metric_name": "system.memory.usage", | |
"stability": "development", | |
"brief": "Reports memory in use by state.", | |
"note": "The sum over all `system.memory.state` values SHOULD equal the total memory\navailable on the system, that is `system.memory.limit`.\n", | |
"instrument": "updowncounter", | |
"unit": "By", | |
"attributes": [ | |
"system.memory.state" | |
], | |
"entity_associations": [ | |
"host" | |
] | |
}, | |
{ | |
"id": "metric.system.memory.limit", | |
"type": "metric", | |
"metric_name": "system.memory.limit", | |
"stability": "development", | |
"brief": "Total memory available in the system.", | |
"note": "Its value SHOULD equal the sum of `system.memory.state` over all states.\n", | |
"instrument": "updowncounter", | |
"unit": "By", | |
"attributes": [], | |
"entity_associations": [ | |
"host" | |
] | |
}, | |
{ | |
"id": "metric.system.memory.shared", | |
"type": "metric", | |
"metric_name": "system.memory.shared", | |
"stability": "development", | |
"brief": "Shared memory used (mostly by tmpfs).", | |
"note": "Equivalent of `shared` from [`free` command](https://man7.org/linux/man-pages/man1/free.1.html) or\n`Shmem` from [`/proc/meminfo`](https://man7.org/linux/man-pages/man5/proc.5.html)\"\n", | |
"instrument": "updowncounter", | |
"unit": "By", | |
"entity_associations": [ | |
"host" | |
] | |
}, | |
{ | |
"id": "metric.system.memory.utilization", | |
"type": "metric", | |
"metric_name": "system.memory.utilization", | |
"stability": "development", | |
"brief": "", | |
"instrument": "gauge", | |
"unit": "1", | |
"attributes": [ | |
"system.memory.state" | |
], | |
"entity_associations": [ | |
"host" | |
] | |
}, | |
{ | |
"id": "metric.system.paging.usage", | |
"type": "metric", | |
"metric_name": "system.paging.usage", | |
"stability": "development", | |
"brief": "Unix swap or windows pagefile usage", | |
"instrument": "updowncounter", | |
"unit": "By", | |
"attributes": [ | |
"system.paging.state", | |
"system.device" | |
], | |
"entity_associations": [ | |
"host" | |
] | |
}, | |
{ | |
"id": "metric.system.paging.utilization", | |
"type": "metric", | |
"metric_name": "system.paging.utilization", | |
"stability": "development", | |
"brief": "", | |
"instrument": "gauge", | |
"unit": "1", | |
"attributes": [ | |
"system.paging.state", | |
"system.device" | |
], | |
"entity_associations": [ | |
"host" | |
] | |
}, | |
{ | |
"id": "metric.system.paging.faults", | |
"type": "metric", | |
"metric_name": "system.paging.faults", | |
"stability": "development", | |
"brief": "", | |
"instrument": "counter", | |
"unit": "{fault}", | |
"attributes": [ | |
"system.paging.type" | |
], | |
"entity_associations": [ | |
"host" | |
] | |
}, | |
{ | |
"id": "metric.system.paging.operations", | |
"type": "metric", | |
"metric_name": "system.paging.operations", | |
"stability": "development", | |
"brief": "", | |
"instrument": "counter", | |
"unit": "{operation}", | |
"attributes": [ | |
"system.paging.type", | |
"system.paging.direction" | |
], | |
"entity_associations": [ | |
"host" | |
] | |
}, | |
{ | |
"id": "metric.system.disk.io", | |
"type": "metric", | |
"metric_name": "system.disk.io", | |
"stability": "development", | |
"brief": "", | |
"instrument": "counter", | |
"unit": "By", | |
"attributes": [ | |
"system.device", | |
"disk.io.direction" | |
], | |
"entity_associations": [ | |
"host" | |
] | |
}, | |
{ | |
"id": "metric.system.disk.operations", | |
"type": "metric", | |
"metric_name": "system.disk.operations", | |
"stability": "development", | |
"brief": "", | |
"instrument": "counter", | |
"unit": "{operation}", | |
"attributes": [ | |
"system.device", | |
"disk.io.direction" | |
], | |
"entity_associations": [ | |
"host" | |
] | |
}, | |
{ | |
"id": "metric.system.disk.io_time", | |
"type": "metric", | |
"metric_name": "system.disk.io_time", | |
"stability": "development", | |
"brief": "Time disk spent activated", | |
"instrument": "counter", | |
"unit": "s", | |
"note": "The real elapsed time (\"wall clock\") used in the I/O path (time from operations running in parallel are not counted). Measured as:\n\n- Linux: Field 13 from [procfs-diskstats](https://www.kernel.org/doc/Documentation/ABI/testing/procfs-diskstats)\n- Windows: The complement of\n [\"Disk\\% Idle Time\"](https://learn.microsoft.com/archive/blogs/askcore/windows-performance-monitor-disk-counters-explained#windows-performance-monitor-disk-counters-explained)\n performance counter: `uptime * (100 - \"Disk\\% Idle Time\") / 100`\n", | |
"attributes": [ | |
"system.device" | |
], | |
"entity_associations": [ | |
"host" | |
] | |
}, | |
{ | |
"id": "metric.system.disk.operation_time", | |
"type": "metric", | |
"metric_name": "system.disk.operation_time", | |
"stability": "development", | |
"brief": "Sum of the time each operation took to complete", | |
"instrument": "counter", | |
"unit": "s", | |
"note": "Because it is the sum of time each request took, parallel-issued requests each contribute to make the count grow. Measured as:\n\n- Linux: Fields 7 & 11 from [procfs-diskstats](https://www.kernel.org/doc/Documentation/ABI/testing/procfs-diskstats)\n- Windows: \"Avg. Disk sec/Read\" perf counter multiplied by \"Disk Reads/sec\" perf counter (similar for Writes)\n", | |
"attributes": [ | |
"system.device", | |
"disk.io.direction" | |
], | |
"entity_associations": [ | |
"host" | |
] | |
}, | |
{ | |
"id": "metric.system.disk.merged", | |
"type": "metric", | |
"metric_name": "system.disk.merged", | |
"stability": "development", | |
"brief": "", | |
"instrument": "counter", | |
"unit": "{operation}", | |
"attributes": [ | |
"system.device", | |
"disk.io.direction" | |
], | |
"entity_associations": [ | |
"host" | |
] | |
}, | |
{ | |
"id": "metric.system.disk.limit", | |
"type": "metric", | |
"metric_name": "system.disk.limit", | |
"stability": "development", | |
"brief": "The total storage capacity of the disk", | |
"instrument": "updowncounter", | |
"unit": "By", | |
"attributes": [ | |
"system.device" | |
], | |
"entity_associations": [ | |
"host" | |
] | |
}, | |
{ | |
"id": "metric.system.filesystem.usage", | |
"type": "metric", | |
"metric_name": "system.filesystem.usage", | |
"stability": "development", | |
"brief": "Reports a filesystem's space usage across different states.", | |
"note": "The sum of all `system.filesystem.usage` values over the different `system.filesystem.state` attributes\nSHOULD equal the total storage capacity of the filesystem, that is `system.filesystem.limit`.\n", | |
"instrument": "updowncounter", | |
"unit": "By", | |
"attributes": [ | |
"system.device", | |
"system.filesystem.state", | |
"system.filesystem.type", | |
"system.filesystem.mode", | |
"system.filesystem.mountpoint" | |
], | |
"entity_associations": [ | |
"host" | |
] | |
}, | |
{ | |
"id": "metric.system.filesystem.utilization", | |
"type": "metric", | |
"metric_name": "system.filesystem.utilization", | |
"stability": "development", | |
"brief": "", | |
"instrument": "gauge", | |
"unit": "1", | |
"attributes": [ | |
"system.device", | |
"system.filesystem.state", | |
"system.filesystem.type", | |
"system.filesystem.mode", | |
"system.filesystem.mountpoint" | |
], | |
"entity_associations": [ | |
"host" | |
] | |
}, | |
{ | |
"id": "metric.system.filesystem.limit", | |
"type": "metric", | |
"metric_name": "system.filesystem.limit", | |
"stability": "development", | |
"brief": "The total storage capacity of the filesystem", | |
"instrument": "updowncounter", | |
"unit": "By", | |
"attributes": [ | |
"system.device", | |
"system.filesystem.type", | |
"system.filesystem.mode", | |
"system.filesystem.mountpoint" | |
], | |
"entity_associations": [ | |
"host" | |
] | |
}, | |
{ | |
"id": "metric.system.network.dropped", | |
"type": "metric", | |
"metric_name": "system.network.dropped", | |
"stability": "development", | |
"brief": "Count of packets that are dropped or discarded even though there was no error", | |
"instrument": "counter", | |
"unit": "{packet}", | |
"note": "Measured as:\n\n- Linux: the `drop` column in `/proc/dev/net` ([source](https://web.archive.org/web/20180321091318/http://www.onlamp.com/pub/a/linux/2000/11/16/LinuxAdmin.html))\n- Windows: [`InDiscards`/`OutDiscards`](https://docs.microsoft.com/windows/win32/api/netioapi/ns-netioapi-mib_if_row2)\n from [`GetIfEntry2`](https://docs.microsoft.com/windows/win32/api/netioapi/nf-netioapi-getifentry2)\n", | |
"attributes": [ | |
"network.interface.name", | |
"network.io.direction" | |
], | |
"entity_associations": [ | |
"host" | |
] | |
}, | |
{ | |
"id": "metric.system.network.packets", | |
"type": "metric", | |
"metric_name": "system.network.packets", | |
"stability": "development", | |
"brief": "", | |
"instrument": "counter", | |
"unit": "{packet}", | |
"attributes": [ | |
"system.device", | |
"network.io.direction" | |
], | |
"entity_associations": [ | |
"host" | |
] | |
}, | |
{ | |
"id": "metric.system.network.errors", | |
"type": "metric", | |
"metric_name": "system.network.errors", | |
"stability": "development", | |
"brief": "Count of network errors detected", | |
"instrument": "counter", | |
"unit": "{error}", | |
"note": "Measured as:\n\n- Linux: the `errs` column in `/proc/dev/net` ([source](https://web.archive.org/web/20180321091318/http://www.onlamp.com/pub/a/linux/2000/11/16/LinuxAdmin.html)).\n- Windows: [`InErrors`/`OutErrors`](https://docs.microsoft.com/windows/win32/api/netioapi/ns-netioapi-mib_if_row2)\n from [`GetIfEntry2`](https://docs.microsoft.com/windows/win32/api/netioapi/nf-netioapi-getifentry2).\n", | |
"attributes": [ | |
"network.interface.name", | |
"network.io.direction" | |
], | |
"entity_associations": [ | |
"host" | |
] | |
}, | |
{ | |
"id": "metric.system.network.io", | |
"type": "metric", | |
"metric_name": "system.network.io", | |
"stability": "development", | |
"brief": "", | |
"instrument": "counter", | |
"unit": "By", | |
"attributes": [ | |
"network.interface.name", | |
"network.io.direction" | |
], | |
"entity_associations": [ | |
"host" | |
] | |
}, | |
{ | |
"id": "metric.system.network.connections", | |
"type": "metric", | |
"metric_name": "system.network.connections", | |
"stability": "development", | |
"brief": "", | |
"instrument": "updowncounter", | |
"unit": "{connection}", | |
"attributes": [ | |
"network.interface.name", | |
"network.connection.state", | |
"network.transport" | |
], | |
"entity_associations": [ | |
"host" | |
] | |
}, | |
{ | |
"id": "metric.system.process.count", | |
"type": "metric", | |
"metric_name": "system.process.count", | |
"stability": "development", | |
"brief": "Total number of processes in each state", | |
"instrument": "updowncounter", | |
"unit": "{process}", | |
"attributes": [ | |
"system.process.status" | |
], | |
"entity_associations": [ | |
"host" | |
] | |
}, | |
{ | |
"id": "metric.system.process.created", | |
"type": "metric", | |
"metric_name": "system.process.created", | |
"stability": "development", | |
"brief": "Total number of processes created over uptime of the host", | |
"instrument": "counter", | |
"unit": "{process}", | |
"attributes": [], | |
"entity_associations": [ | |
"host" | |
] | |
}, | |
{ | |
"id": "metric.system.linux.memory.available", | |
"type": "metric", | |
"metric_name": "system.linux.memory.available", | |
"stability": "development", | |
"brief": "An estimate of how much memory is available for starting new applications, without causing swapping", | |
"note": "This is an alternative to `system.memory.usage` metric with `state=free`.\nLinux starting from 3.14 exports \"available\" memory. It takes \"free\" memory as a baseline, and then factors in kernel-specific values.\nThis is supposed to be more accurate than just \"free\" memory.\nFor reference, see the calculations [here](https://superuser.com/a/980821).\nSee also `MemAvailable` in [/proc/meminfo](https://man7.org/linux/man-pages/man5/proc.5.html).\n", | |
"instrument": "updowncounter", | |
"unit": "By", | |
"attributes": [], | |
"entity_associations": [ | |
"host" | |
] | |
}, | |
{ | |
"id": "metric.system.linux.memory.slab.usage", | |
"type": "metric", | |
"metric_name": "system.linux.memory.slab.usage", | |
"stability": "development", | |
"brief": "Reports the memory used by the Linux kernel for managing caches of frequently used objects.", | |
"note": "The sum over the `reclaimable` and `unreclaimable` state values in `linux.memory.slab.usage` SHOULD be equal to the total slab memory available on the system.\nNote that the total slab memory is not constant and may vary over time.\nSee also the [Slab allocator](https://blogs.oracle.com/linux/post/understanding-linux-kernel-memory-statistics) and `Slab` in [/proc/meminfo](https://man7.org/linux/man-pages/man5/proc.5.html).\n", | |
"instrument": "updowncounter", | |
"unit": "By", | |
"attributes": [ | |
"linux.memory.slab.state" | |
], | |
"entity_associations": [ | |
"host" | |
] | |
}, | |
{ | |
"id": "registry.system", | |
"type": "attribute_group", | |
"display_name": "General System Attributes", | |
"brief": "Describes System attributes", | |
"attributes": [ | |
"system.device" | |
] | |
}, | |
{ | |
"id": "registry.system.memory", | |
"type": "attribute_group", | |
"display_name": "System Memory Attributes", | |
"brief": "Describes System Memory attributes", | |
"attributes": [ | |
"system.memory.state" | |
] | |
}, | |
{ | |
"id": "registry.system.paging", | |
"type": "attribute_group", | |
"display_name": "System Paging Attributes", | |
"brief": "Describes System Memory Paging attributes", | |
"attributes": [ | |
"system.paging.state", | |
"system.paging.type", | |
"system.paging.direction" | |
] | |
}, | |
{ | |
"id": "registry.system.filesystem", | |
"type": "attribute_group", | |
"display_name": "Filesystem Attributes", | |
"brief": "Describes Filesystem attributes", | |
"attributes": [ | |
"system.filesystem.state", | |
"system.filesystem.type", | |
"system.filesystem.mode", | |
"system.filesystem.mountpoint" | |
] | |
}, | |
{ | |
"id": "registry.system.process", | |
"type": "attribute_group", | |
"display_name": "System Process Attributes", | |
"brief": "Describes System Process attributes", | |
"attributes": [ | |
"system.process.status" | |
] | |
}, | |
{ | |
"id": "registry.telemetry", | |
"type": "attribute_group", | |
"display_name": "Telemetry Attributes", | |
"brief": "This document defines attributes for telemetry SDK.\n", | |
"attributes": [ | |
"telemetry.sdk.name", | |
"telemetry.sdk.language", | |
"telemetry.sdk.version", | |
"telemetry.distro.name", | |
"telemetry.distro.version" | |
] | |
}, | |
{ | |
"id": "entity.telemetry.sdk", | |
"name": "telemetry.sdk", | |
"type": "entity", | |
"stability": "stable", | |
"brief": "The telemetry SDK used to capture data recorded by the instrumentation libraries.\n", | |
"attributes": [ | |
"telemetry.sdk.name", | |
"telemetry.sdk.language" | |
], | |
"descriptive_attributes": [ | |
"telemetry.sdk.version" | |
] | |
}, | |
{ | |
"id": "entity.telemetry.distro", | |
"name": "telemetry.distro", | |
"type": "entity", | |
"stability": "development", | |
"brief": "The distribution of telemetry SDK used to capture data recorded by the instrumentation libraries.\n", | |
"attributes": [ | |
"telemetry.distro.name" | |
], | |
"descriptive_attributes": [ | |
"telemetry.distro.version" | |
] | |
}, | |
{ | |
"id": "registry.test", | |
"type": "attribute_group", | |
"display_name": "Test Attributes", | |
"brief": "This group describes attributes specific to [software tests](https://wikipedia.org/wiki/Software_testing).\n", | |
"attributes": [ | |
"test.suite.name", | |
"test.suite.run.status", | |
"test.case.name", | |
"test.case.result.status" | |
] | |
}, | |
{ | |
"id": "thread", | |
"type": "attribute_group", | |
"brief": "These attributes may be used for any operation to store information about a thread that started a span.\n", | |
"attributes": [ | |
"thread.id", | |
"thread.name" | |
] | |
}, | |
{ | |
"id": "registry.thread", | |
"type": "attribute_group", | |
"display_name": "Thread Attributes", | |
"brief": "These attributes may be used for any operation to store information about a thread that started a span.\n", | |
"attributes": [ | |
"thread.id", | |
"thread.name" | |
] | |
}, | |
{ | |
"id": "registry.tls.deprecated", | |
"type": "attribute_group", | |
"brief": "Describes deprecated `tls` attributes.", | |
"attributes": [ | |
"tls.client.server_name" | |
] | |
}, | |
{ | |
"id": "registry.tls", | |
"type": "attribute_group", | |
"display_name": "TLS Attributes", | |
"brief": "This document defines semantic convention attributes in the TLS namespace.", | |
"attributes": [ | |
"tls.cipher", | |
"tls.client.certificate", | |
"tls.client.certificate_chain", | |
"tls.client.hash.md5", | |
"tls.client.hash.sha1", | |
"tls.client.hash.sha256", | |
"tls.client.issuer", | |
"tls.client.ja3", | |
"tls.client.not_after", | |
"tls.client.not_before", | |
"tls.client.subject", | |
"tls.client.supported_ciphers", | |
"tls.curve", | |
"tls.established", | |
"tls.next_protocol", | |
"tls.protocol.name", | |
"tls.protocol.version", | |
"tls.resumed", | |
"tls.server.certificate", | |
"tls.server.certificate_chain", | |
"tls.server.hash.md5", | |
"tls.server.hash.sha1", | |
"tls.server.hash.sha256", | |
"tls.server.issuer", | |
"tls.server.ja3s", | |
"tls.server.not_after", | |
"tls.server.not_before", | |
"tls.server.subject" | |
] | |
}, | |
{ | |
"id": "url", | |
"brief": "Attributes describing URL.", | |
"type": "attribute_group", | |
"attributes": [ | |
"url.scheme", | |
"url.full", | |
"url.path", | |
"url.query", | |
"url.fragment" | |
] | |
}, | |
{ | |
"id": "registry.url", | |
"brief": "Attributes describing URL.", | |
"type": "attribute_group", | |
"display_name": "URL Attributes", | |
"attributes": [ | |
"url.domain", | |
"url.extension", | |
"url.fragment", | |
"url.full", | |
"url.original", | |
"url.path", | |
"url.port", | |
"url.query", | |
"url.registered_domain", | |
"url.scheme", | |
"url.subdomain", | |
"url.template", | |
"url.top_level_domain" | |
] | |
}, | |
{ | |
"id": "registry.user", | |
"type": "attribute_group", | |
"display_name": "User Attributes", | |
"brief": "Describes information about the user.", | |
"attributes": [ | |
"user.email", | |
"user.full_name", | |
"user.hash", | |
"user.id", | |
"user.name", | |
"user.roles" | |
] | |
}, | |
{ | |
"id": "registry.user_agent", | |
"type": "attribute_group", | |
"display_name": "User-agent Attributes", | |
"brief": "Describes user-agent attributes.", | |
"attributes": [ | |
"user_agent.original", | |
"user_agent.name", | |
"user_agent.version" | |
] | |
}, | |
{ | |
"id": "registry.user_agent.os", | |
"type": "attribute_group", | |
"display_name": "User-agent OS Attributes", | |
"brief": "Describes the OS user-agent attributes.", | |
"attributes": [ | |
"user_agent.os.name", | |
"user_agent.os.version", | |
"user_agent.synthetic.type" | |
] | |
}, | |
{ | |
"id": "metric.v8js.gc.duration", | |
"type": "metric", | |
"metric_name": "v8js.gc.duration", | |
"brief": "Garbage collection duration.", | |
"instrument": "histogram", | |
"unit": "s", | |
"stability": "development", | |
"attributes": [ | |
"v8js.gc.type" | |
], | |
"note": "The values can be retrieved from [`perf_hooks.PerformanceObserver(...).observe({ entryTypes: ['gc'] })`](https://nodejs.org/api/perf_hooks.html#performanceobserverobserveoptions)\n" | |
}, | |
{ | |
"id": "metric.v8js.memory.heap.limit", | |
"type": "metric", | |
"metric_name": "v8js.memory.heap.limit", | |
"brief": "Total heap memory size pre-allocated.", | |
"instrument": "updowncounter", | |
"unit": "By", | |
"stability": "development", | |
"attributes": [ | |
"v8js.heap.space.name" | |
], | |
"note": "The value can be retrieved from value `space_size` of [`v8.getHeapSpaceStatistics()`](https://nodejs.org/api/v8.html#v8getheapspacestatistics)\n" | |
}, | |
{ | |
"id": "metric.v8js.memory.heap.used", | |
"type": "metric", | |
"metric_name": "v8js.memory.heap.used", | |
"brief": "Heap Memory size allocated.", | |
"instrument": "updowncounter", | |
"unit": "By", | |
"stability": "development", | |
"attributes": [ | |
"v8js.heap.space.name" | |
], | |
"note": "The value can be retrieved from value `space_used_size` of [`v8.getHeapSpaceStatistics()`](https://nodejs.org/api/v8.html#v8getheapspacestatistics)\n" | |
}, | |
{ | |
"id": "metric.v8js.heap.space.available_size", | |
"type": "metric", | |
"metric_name": "v8js.heap.space.available_size", | |
"brief": "Heap space available size.", | |
"instrument": "updowncounter", | |
"unit": "By", | |
"stability": "development", | |
"attributes": [ | |
"v8js.heap.space.name" | |
], | |
"note": "Value can be retrieved from value `space_available_size` of [`v8.getHeapSpaceStatistics()`](https://nodejs.org/api/v8.html#v8getheapspacestatistics)\n" | |
}, | |
{ | |
"id": "metric.v8js.heap.space.physical_size", | |
"type": "metric", | |
"metric_name": "v8js.heap.space.physical_size", | |
"brief": "Committed size of a heap space.", | |
"instrument": "updowncounter", | |
"unit": "By", | |
"stability": "development", | |
"attributes": [ | |
"v8js.heap.space.name" | |
], | |
"note": "Value can be retrieved from value `physical_space_size` of [`v8.getHeapSpaceStatistics()`](https://nodejs.org/api/v8.html#v8getheapspacestatistics)\n" | |
}, | |
{ | |
"id": "registry.v8js", | |
"type": "attribute_group", | |
"brief": "Describes V8 JS Engine Runtime related attributes.", | |
"display_name": "V8 JS Attributes", | |
"attributes": [ | |
"v8js.gc.type", | |
"v8js.heap.space.name" | |
] | |
}, | |
{ | |
"id": "registry.vcs.deprecated", | |
"type": "attribute_group", | |
"brief": "\"Describes deprecated vcs attributes.\"\n", | |
"attributes": [ | |
"vcs.repository.ref.name", | |
"vcs.repository.ref.type", | |
"vcs.repository.ref.revision", | |
"vcs.repository.change.title", | |
"vcs.repository.change.id" | |
] | |
}, | |
{ | |
"id": "metric.vcs.change.count", | |
"type": "metric", | |
"metric_name": "vcs.change.count", | |
"brief": "The number of changes (pull requests/merge requests/changelists) in a repository, categorized by their state (e.g. open or merged)", | |
"instrument": "updowncounter", | |
"unit": "{change}", | |
"stability": "development", | |
"attributes": [ | |
"vcs.change.state", | |
"vcs.repository.url.full", | |
"vcs.repository.name", | |
"vcs.owner.name", | |
"vcs.provider.name" | |
], | |
"entity_associations": [ | |
"vcs.repo" | |
] | |
}, | |
{ | |
"id": "metric.vcs.change.duration", | |
"type": "metric", | |
"metric_name": "vcs.change.duration", | |
"brief": "The time duration a change (pull request/merge request/changelist) has been in a given state.", | |
"instrument": "gauge", | |
"unit": "s", | |
"stability": "development", | |
"attributes": [ | |
"vcs.repository.url.full", | |
"vcs.repository.name", | |
"vcs.ref.head.name", | |
"vcs.change.state", | |
"vcs.owner.name", | |
"vcs.provider.name" | |
], | |
"entity_associations": [ | |
"vcs.repo" | |
] | |
}, | |
{ | |
"id": "metric.vcs.change.time_to_approval", | |
"type": "metric", | |
"metric_name": "vcs.change.time_to_approval", | |
"brief": "The amount of time since its creation it took a change (pull request/merge request/changelist) to get the first approval.", | |
"instrument": "gauge", | |
"unit": "s", | |
"stability": "development", | |
"attributes": [ | |
"vcs.repository.url.full", | |
"vcs.repository.name", | |
"vcs.ref.head.name", | |
"vcs.ref.head.revision", | |
"vcs.ref.base.name", | |
"vcs.ref.base.revision", | |
"vcs.owner.name", | |
"vcs.provider.name" | |
], | |
"entity_associations": [ | |
"vcs.repo", | |
"vcs.ref" | |
] | |
}, | |
{ | |
"id": "metric.vcs.change.time_to_merge", | |
"type": "metric", | |
"metric_name": "vcs.change.time_to_merge", | |
"brief": "The amount of time since its creation it took a change (pull request/merge request/changelist) to get merged into the target(base) ref.", | |
"instrument": "gauge", | |
"unit": "s", | |
"stability": "development", | |
"attributes": [ | |
"vcs.repository.url.full", | |
"vcs.repository.name", | |
"vcs.ref.head.name", | |
"vcs.ref.head.revision", | |
"vcs.ref.base.name", | |
"vcs.ref.base.revision", | |
"vcs.owner.name", | |
"vcs.provider.name" | |
], | |
"entity_associations": [ | |
"vcs.repo", | |
"vcs.ref" | |
] | |
}, | |
{ | |
"id": "metric.vcs.repository.count", | |
"type": "metric", | |
"metric_name": "vcs.repository.count", | |
"brief": "The number of repositories in an organization.", | |
"instrument": "updowncounter", | |
"unit": "{repository}", | |
"stability": "development", | |
"attributes": [ | |
"vcs.owner.name", | |
"vcs.provider.name" | |
] | |
}, | |
{ | |
"id": "metric.vcs.ref.count", | |
"type": "metric", | |
"metric_name": "vcs.ref.count", | |
"brief": "The number of refs of type branch or tag in a repository.", | |
"instrument": "updowncounter", | |
"unit": "{ref}", | |
"stability": "development", | |
"attributes": [ | |
"vcs.repository.url.full", | |
"vcs.repository.name", | |
"vcs.ref.type", | |
"vcs.owner.name", | |
"vcs.provider.name" | |
], | |
"entity_associations": [ | |
"vcs.repo" | |
] | |
}, | |
{ | |
"id": "metric.vcs.ref.lines_delta", | |
"type": "metric", | |
"metric_name": "vcs.ref.lines_delta", | |
"brief": "The number of lines added/removed in a ref (branch) relative to the ref from the `vcs.ref.base.name` attribute.", | |
"note": "This metric should be reported for each `vcs.line_change.type` value. For example if a ref added 3 lines and removed 2 lines,\ninstrumentation SHOULD report two measurements: 3 and 2 (both positive numbers).\nIf number of lines added/removed should be calculated from the start of time, then `vcs.ref.base.name` SHOULD be set to an empty string.\n", | |
"instrument": "gauge", | |
"unit": "{line}", | |
"stability": "development", | |
"attributes": [ | |
"vcs.change.id", | |
"vcs.repository.url.full", | |
"vcs.repository.name", | |
"vcs.ref.head.name", | |
"vcs.ref.head.type", | |
"vcs.ref.base.name", | |
"vcs.ref.base.type", | |
"vcs.line_change.type", | |
"vcs.owner.name", | |
"vcs.provider.name" | |
], | |
"entity_associations": [ | |
"vcs.repo" | |
] | |
}, | |
{ | |
"id": "metric.vcs.ref.revisions_delta", | |
"type": "metric", | |
"metric_name": "vcs.ref.revisions_delta", | |
"brief": "The number of revisions (commits) a ref (branch) is ahead/behind the branch from the `vcs.ref.base.name` attribute", | |
"note": "This metric should be reported for each `vcs.revision_delta.direction` value. For example if branch `a` is 3 commits behind and 2 commits ahead of `trunk`,\ninstrumentation SHOULD report two measurements: 3 and 2 (both positive numbers) and `vcs.ref.base.name` is set to `trunk`.\n", | |
"instrument": "gauge", | |
"unit": "{revision}", | |
"stability": "development", | |
"attributes": [ | |
"vcs.change.id", | |
"vcs.repository.url.full", | |
"vcs.repository.name", | |
"vcs.ref.head.name", | |
"vcs.ref.head.type", | |
"vcs.ref.base.name", | |
"vcs.ref.base.type", | |
"vcs.revision_delta.direction", | |
"vcs.owner.name", | |
"vcs.provider.name" | |
], | |
"entity_associations": [ | |
"vcs.repo" | |
] | |
}, | |
{ | |
"id": "metric.vcs.ref.time", | |
"type": "metric", | |
"metric_name": "vcs.ref.time", | |
"brief": "Time a ref (branch) created from the default branch (trunk) has existed. The `ref.type` attribute will always be `branch`", | |
"instrument": "gauge", | |
"unit": "s", | |
"stability": "development", | |
"attributes": [ | |
"vcs.repository.url.full", | |
"vcs.repository.name", | |
"vcs.ref.head.name", | |
"vcs.ref.head.type", | |
"vcs.owner.name", | |
"vcs.provider.name" | |
], | |
"entity_associations": [ | |
"vcs.repo" | |
] | |
}, | |
{ | |
"id": "metric.vcs.contributor.count", | |
"type": "metric", | |
"metric_name": "vcs.contributor.count", | |
"brief": "The number of unique contributors to a repository", | |
"instrument": "gauge", | |
"unit": "{contributor}", | |
"stability": "development", | |
"attributes": [ | |
"vcs.repository.url.full", | |
"vcs.repository.name", | |
"vcs.owner.name", | |
"vcs.provider.name" | |
], | |
"entity_associations": [ | |
"vcs.repo" | |
] | |
}, | |
{ | |
"id": "registry.vcs.repository", | |
"type": "attribute_group", | |
"display_name": "VCS Repository Attributes", | |
"brief": "This group defines the attributes for [Version Control Systems (VCS)](https://wikipedia.org/wiki/Version_control).\n", | |
"attributes": [ | |
"vcs.repository.url.full", | |
"vcs.repository.name", | |
"vcs.ref.base.name", | |
"vcs.ref.base.type", | |
"vcs.ref.base.revision", | |
"vcs.ref.head.name", | |
"vcs.ref.head.type", | |
"vcs.ref.head.revision", | |
"vcs.ref.type", | |
"vcs.revision_delta.direction", | |
"vcs.line_change.type", | |
"vcs.change.title", | |
"vcs.change.id", | |
"vcs.change.state", | |
"vcs.owner.name", | |
"vcs.provider.name" | |
] | |
}, | |
{ | |
"id": "resource.vcs.repo", | |
"type": "resource", | |
"stability": "development", | |
"name": "vcs.repo", | |
"brief": "A repository in the Version Control System.\n", | |
"attributes": [ | |
"vcs.repository.url.full", | |
"vcs.repository.name" | |
] | |
}, | |
{ | |
"id": "resource.vcs.ref", | |
"type": "resource", | |
"stability": "development", | |
"name": "vcs.ref", | |
"brief": "A reference to a specific version in the Version Control System.\n", | |
"attributes": [ | |
"vcs.ref.head.name", | |
"vcs.ref.head.revision", | |
"vcs.ref.type" | |
] | |
}, | |
{ | |
"id": "registry.webengine", | |
"type": "attribute_group", | |
"display_name": "Web Engine Attributes", | |
"stability": "development", | |
"brief": "This document defines the attributes used to describe the packaged software running the application code.\n", | |
"attributes": [ | |
"webengine.name", | |
"webengine.version", | |
"webengine.description" | |
] | |
}, | |
{ | |
"id": "resource.webengine", | |
"type": "resource", | |
"stability": "development", | |
"name": "webengine", | |
"brief": "Resource describing the packaged software running the application code. Web engines are typically executed using process.runtime.\n", | |
"attributes": [ | |
"webengine.name", | |
"webengine.version", | |
"webengine.description" | |
] | |
} | |
] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment