AWS Lambda: The function ARN.
diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/CloudfoundryIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/CloudfoundryIncubatingAttributes.java
index 4e048a2..bbae154 100644
--- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/CloudfoundryIncubatingAttributes.java
+++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/CloudfoundryIncubatingAttributes.java
@@ -30,7 +30,7 @@ public final class CloudfoundryIncubatingAttributes {
* Notes:
*
*
CloudFoundry defines the {@code instance_id} in the Loggegator v2 envelope.
+ * href="https://github.com/cloudfoundry/loggregator-api#v2-envelope">Loggregator v2 envelope.
* It is used for logs and metrics emitted by CloudFoundry. It is supposed to contain the
* application instance index for applications deployed on the runtime.
*
diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/DbIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/DbIncubatingAttributes.java
index a64370e..cd2b250 100644
--- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/DbIncubatingAttributes.java
+++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/DbIncubatingAttributes.java
@@ -8,11 +8,13 @@
import static io.opentelemetry.api.common.AttributeKey.booleanKey;
import static io.opentelemetry.api.common.AttributeKey.doubleKey;
import static io.opentelemetry.api.common.AttributeKey.longKey;
+import static io.opentelemetry.api.common.AttributeKey.stringArrayKey;
import static io.opentelemetry.api.common.AttributeKey.stringKey;
import static io.opentelemetry.semconv.AttributeKeyTemplate.stringKeyTemplate;
import io.opentelemetry.api.common.AttributeKey;
import io.opentelemetry.semconv.AttributeKeyTemplate;
+import java.util.List;
// DO NOT EDIT, this is an Auto-generated file from
// buildscripts/templates/registry/incubating_java/IncubatingSemanticAttributes.java.j2
@@ -100,12 +102,15 @@ public final class DbIncubatingAttributes {
*
Notes:
*
*
It is RECOMMENDED to capture the value as provided by the application without attempting to
- * do any case normalization. If the collection name is parsed from the query text, it SHOULD be
- * the first collection name found in the query and it SHOULD match the value provided in the
- * query text including any schema and database name prefix. For batch operations, if the
- * individual operations are known to have the same collection name then that collection name
- * SHOULD be used, otherwise {@code db.collection.name} SHOULD NOT be captured. This attribute has
- * stability level RELEASE CANDIDATE.
+ * do any case normalization.
+ *
+ *
The collection name SHOULD NOT be extracted from {@code db.query.text}, unless the query
+ * format is known to only ever have a single collection name present.
+ *
+ *
For batch operations, if the individual operations are known to have the same collection
+ * name then that collection name SHOULD be used.
+ *
+ *
This attribute has stability level RELEASE CANDIDATE.
*/
public static final AttributeKey DB_COLLECTION_NAME = stringKey("db.collection.name");
@@ -127,6 +132,13 @@ public final class DbIncubatingAttributes {
public static final AttributeKey DB_COSMOSDB_CONNECTION_MODE =
stringKey("db.cosmosdb.connection_mode");
+ /**
+ * Account or request consistency level.
+ */
+ public static final AttributeKey DB_COSMOSDB_CONSISTENCY_LEVEL =
+ stringKey("db.cosmosdb.consistency_level");
+
/**
* Deprecated, use {@code db.collection.name} instead.
*
@@ -138,15 +150,36 @@ public final class DbIncubatingAttributes {
public static final AttributeKey DB_COSMOSDB_CONTAINER =
stringKey("db.cosmosdb.container");
- /** Cosmos DB Operation Type. */
+ /**
+ * Deprecated, no replacement at this time.
+ *
+ *
+ *
+ * @deprecated No replacement at this time.
+ */
+ @Deprecated
public static final AttributeKey DB_COSMOSDB_OPERATION_TYPE =
stringKey("db.cosmosdb.operation_type");
- /** RU consumed for that operation */
+ /**
+ * List of regions contacted during operation in the order that they were contacted. If there is
+ * more than one region listed, it indicates that the operation was performed on multiple regions
+ * i.e. cross-regional call.
+ *
+ * Notes:
+ *
+ *
Region name matches the format of {@code displayName} in Azure
+ * Location API
+ */
+ public static final AttributeKey> DB_COSMOSDB_REGIONS_CONTACTED =
+ stringArrayKey("db.cosmosdb.regions_contacted");
+
+ /** Request units consumed for the operation. */
public static final AttributeKey DB_COSMOSDB_REQUEST_CHARGE =
doubleKey("db.cosmosdb.request_charge");
- /** Request payload size in bytes */
+ /** Request payload size in bytes. */
public static final AttributeKey DB_COSMOSDB_REQUEST_CONTENT_LENGTH =
longKey("db.cosmosdb.request_content_length");
@@ -292,28 +325,61 @@ public final class DbIncubatingAttributes {
* Notes:
*
*
It is RECOMMENDED to capture the value as provided by the application without attempting to
- * do any case normalization. If the operation name is parsed from the query text, it SHOULD be
- * the first operation name found in the query. For batch operations, if the individual operations
- * are known to have the same operation name then that operation name SHOULD be used prepended by
- * {@code BATCH }, otherwise {@code db.operation.name} SHOULD be {@code BATCH} or some other
- * database system specific term if more applicable. This attribute has stability level RELEASE
- * CANDIDATE.
+ * do any case normalization.
+ *
+ *
The operation name SHOULD NOT be extracted from {@code db.query.text}, unless the query
+ * format is known to only ever have a single operation name present.
+ *
+ *
For batch operations, if the individual operations are known to have the same operation name
+ * then that operation name SHOULD be used prepended by {@code BATCH }, otherwise {@code
+ * db.operation.name} SHOULD be {@code BATCH} or some other database system specific term if more
+ * applicable.
+ *
+ *
This attribute has stability level RELEASE CANDIDATE.
*/
public static final AttributeKey DB_OPERATION_NAME = stringKey("db.operation.name");
+ /**
+ * A database operation parameter, with {@code } being the parameter name, and the attribute
+ * value being a string representation of the parameter value.
+ *
+ * Notes:
+ *
+ *
If a parameter has no name and instead is referenced only by index, then {@code }
+ * SHOULD be the 0-based index. If {@code db.query.text} is also captured, then {@code
+ * db.operation.parameter.} SHOULD match up with the parameterized placeholders present in
+ * {@code db.query.text}. This attribute has stability level RELEASE CANDIDATE.
+ */
+ public static final AttributeKeyTemplate DB_OPERATION_PARAMETER =
+ stringKeyTemplate("db.operation.parameter");
+
/**
* A query parameter used in {@code db.query.text}, with {@code } being the parameter name,
* and the attribute value being a string representation of the parameter value.
*
- * Notes:
+ *
*
- *
Query parameters should only be captured when {@code db.query.text} is parameterized with
- * placeholders. If a parameter has no name and instead is referenced only by index, then {@code
- * } SHOULD be the 0-based index. This attribute has stability level RELEASE CANDIDATE.
+ * @deprecated Replaced by {@code db.operation.parameter}.
*/
+ @Deprecated
public static final AttributeKeyTemplate DB_QUERY_PARAMETER =
stringKeyTemplate("db.query.parameter");
+ /**
+ * Low cardinality representation of a database query text.
+ *
+ * Notes:
+ *
+ *
{@code db.query.summary} provides static summary of the query text. It describes a class of
+ * database queries and is useful as a grouping key, especially when analyzing telemetry for
+ * database calls involving complex queries. Summary may be available to the instrumentation
+ * through instrumentation hooks or other means. If it is not available, instrumentations that
+ * support query parsing SHOULD generate a summary following Generating
+ * query summary section. This attribute has stability level RELEASE CANDIDATE.
+ */
+ public static final AttributeKey DB_QUERY_SUMMARY = stringKey("db.query.summary");
+
/**
* The database query being executed.
*
@@ -343,6 +409,10 @@ public final class DbIncubatingAttributes {
public static final AttributeKey DB_REDIS_DATABASE_INDEX =
longKey("db.redis.database_index");
+ /** Number of rows returned by the operation. */
+ public static final AttributeKey DB_RESPONSE_RETURNED_ROWS =
+ longKey("db.response.returned_rows");
+
/**
* Database response status code.
*
@@ -464,7 +534,7 @@ private DbClientConnectionsStateIncubatingValues() {}
/** Values for {@link #DB_COSMOSDB_CONNECTION_MODE}. */
public static final class DbCosmosdbConnectionModeIncubatingValues {
- /** Gateway (HTTP) connections mode */
+ /** Gateway (HTTP) connection. */
public static final String GATEWAY = "gateway";
/** Direct connection. */
@@ -473,7 +543,32 @@ public static final class DbCosmosdbConnectionModeIncubatingValues {
private DbCosmosdbConnectionModeIncubatingValues() {}
}
- /** Values for {@link #DB_COSMOSDB_OPERATION_TYPE}. */
+ /** Values for {@link #DB_COSMOSDB_CONSISTENCY_LEVEL}. */
+ public static final class DbCosmosdbConsistencyLevelIncubatingValues {
+ /** strong. */
+ public static final String STRONG = "Strong";
+
+ /** bounded_staleness. */
+ public static final String BOUNDED_STALENESS = "BoundedStaleness";
+
+ /** session. */
+ public static final String SESSION = "Session";
+
+ /** eventual. */
+ public static final String EVENTUAL = "Eventual";
+
+ /** consistent_prefix. */
+ public static final String CONSISTENT_PREFIX = "ConsistentPrefix";
+
+ private DbCosmosdbConsistencyLevelIncubatingValues() {}
+ }
+
+ /**
+ * Values for {@link #DB_COSMOSDB_OPERATION_TYPE}
+ *
+ * @deprecated No replacement at this time.
+ */
+ @Deprecated
public static final class DbCosmosdbOperationTypeIncubatingValues {
/** batch. */
public static final String BATCH = "batch";
diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/DeploymentIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/DeploymentIncubatingAttributes.java
index c26d19c..6620a7c 100644
--- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/DeploymentIncubatingAttributes.java
+++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/DeploymentIncubatingAttributes.java
@@ -35,8 +35,6 @@ public final class DeploymentIncubatingAttributes {
* resource attributes. This implies that resources carrying the following attribute combinations
* MUST be considered to be identifying the same service:
*
- *
- *
*
* - {@code service.name=frontend}, {@code deployment.environment.name=production}
*
- {@code service.name=frontend}, {@code deployment.environment.name=staging}.
diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ErrorIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ErrorIncubatingAttributes.java
index 035efec..97a6af3 100644
--- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ErrorIncubatingAttributes.java
+++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ErrorIncubatingAttributes.java
@@ -36,14 +36,14 @@ public final class ErrorIncubatingAttributes {
*
If a specific domain defines its own set of error identifiers (such as HTTP or gRPC status
* codes), it's RECOMMENDED to:
*
- *
- *
*
* - Use a domain-specific attribute
*
- Set {@code error.type} to capture all errors, regardless of whether they are defined
* within the domain-specific set or not.
*
*
+ *
+ *
* @deprecated deprecated in favor of stable {@link
* io.opentelemetry.semconv.ErrorAttributes#ERROR_TYPE} attribute.
*/
diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/FaasIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/FaasIncubatingAttributes.java
index 2c6978b..88d8139 100644
--- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/FaasIncubatingAttributes.java
+++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/FaasIncubatingAttributes.java
@@ -58,8 +58,6 @@ public final class FaasIncubatingAttributes {
*
*
Notes:
*
- *
- *
*
* - AWS Lambda: Use the (full) log stream name.
*
@@ -123,8 +121,6 @@ public final class FaasIncubatingAttributes {
* function name MUST be used for this attribute (and consequently the span name) for the listed
* cloud providers/products:
*
- *
- *
*
* - Azure: The full name {@code /}, i.e., function app name
* followed by a forward slash followed by the function name (this form can also be seen in
@@ -152,8 +148,6 @@ public final class FaasIncubatingAttributes {
*
*
Depending on the cloud provider and platform, use:
*
- *
- *
*
* - AWS Lambda: The function
diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/FeatureFlagIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/FeatureFlagIncubatingAttributes.java
index fb55216..9ec5f93 100644
--- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/FeatureFlagIncubatingAttributes.java
+++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/FeatureFlagIncubatingAttributes.java
@@ -13,16 +13,33 @@
// buildscripts/templates/registry/incubating_java/IncubatingSemanticAttributes.java.j2
@SuppressWarnings("unused")
public final class FeatureFlagIncubatingAttributes {
- /** The unique identifier of the feature flag. */
+ /** The unique identifier for the flag evaluation context. For example, the targeting key. */
+ public static final AttributeKey FEATURE_FLAG_CONTEXT_ID =
+ stringKey("feature_flag.context.id");
+
+ /** A message explaining the nature of an error occurring during flag evaluation. */
+ public static final AttributeKey FEATURE_FLAG_EVALUATION_ERROR_MESSAGE =
+ stringKey("feature_flag.evaluation.error.message");
+
+ /** The reason code which shows how a feature flag value was determined. */
+ public static final AttributeKey FEATURE_FLAG_EVALUATION_REASON =
+ stringKey("feature_flag.evaluation.reason");
+
+ /** The lookup key of the feature flag. */
public static final AttributeKey FEATURE_FLAG_KEY = stringKey("feature_flag.key");
- /** The name of the service provider that performs the flag evaluation. */
+ /** Identifies the feature flag provider. */
public static final AttributeKey FEATURE_FLAG_PROVIDER_NAME =
stringKey("feature_flag.provider_name");
/**
- * SHOULD be a semantic identifier for a value. If one is unavailable, a stringified version of
- * the value can be used.
+ * The identifier of the flag
+ * set to which the feature flag belongs.
+ */
+ public static final AttributeKey FEATURE_FLAG_SET_ID = stringKey("feature_flag.set.id");
+
+ /**
+ * A semantic identifier for an evaluated flag value.
*
*
Notes:
*
@@ -30,13 +47,53 @@ public final class FeatureFlagIncubatingAttributes {
* a value without including the value itself. This can provide additional context for
* understanding the meaning behind a value. For example, the variant {@code red} maybe be used
* for the value {@code #c05543}.
- *
- *
A stringified version of the value can be used in situations where a semantic identifier is
- * unavailable. String representation of the value should be determined by the implementer.
*/
public static final AttributeKey FEATURE_FLAG_VARIANT = stringKey("feature_flag.variant");
+ /**
+ * The version of the ruleset used during the evaluation. This may be any stable value which
+ * uniquely identifies the ruleset.
+ */
+ public static final AttributeKey FEATURE_FLAG_VERSION = stringKey("feature_flag.version");
+
// Enum definitions
+ /** Values for {@link #FEATURE_FLAG_EVALUATION_REASON}. */
+ public static final class FeatureFlagEvaluationReasonIncubatingValues {
+ /** The resolved value is static (no dynamic evaluation). */
+ public static final String STATIC = "static";
+
+ /**
+ * The resolved value fell back to a pre-configured value (no dynamic evaluation occurred or
+ * dynamic evaluation yielded no result).
+ */
+ public static final String DEFAULT = "default";
+
+ /**
+ * The resolved value was the result of a dynamic evaluation, such as a rule or specific
+ * user-targeting.
+ */
+ public static final String TARGETING_MATCH = "targeting_match";
+
+ /** The resolved value was the result of pseudorandom assignment. */
+ public static final String SPLIT = "split";
+
+ /** The resolved value was retrieved from cache. */
+ public static final String CACHED = "cached";
+
+ /** The resolved value was the result of the flag being disabled in the management system. */
+ public static final String DISABLED = "disabled";
+
+ /** The reason for the resolved value could not be determined. */
+ public static final String UNKNOWN = "unknown";
+
+ /** The resolved value is non-authoritative or possibly out of date */
+ public static final String STALE = "stale";
+
+ /** The resolved value was the result of an error. */
+ public static final String ERROR = "error";
+
+ private FeatureFlagEvaluationReasonIncubatingValues() {}
+ }
private FeatureFlagIncubatingAttributes() {}
}
diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/GenAiIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/GenAiIncubatingAttributes.java
index b08953d..1cefc90 100644
--- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/GenAiIncubatingAttributes.java
+++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/GenAiIncubatingAttributes.java
@@ -35,7 +35,7 @@ public final class GenAiIncubatingAttributes {
public static final AttributeKey GEN_AI_OPENAI_REQUEST_SEED =
longKey("gen_ai.openai.request.seed");
- /** The service tier requested. May be a specific tier, detault, or auto. */
+ /** The service tier requested. May be a specific tier, default, or auto. */
public static final AttributeKey GEN_AI_OPENAI_REQUEST_SERVICE_TIER =
stringKey("gen_ai.openai.request.service_tier");
@@ -43,6 +43,10 @@ public final class GenAiIncubatingAttributes {
public static final AttributeKey GEN_AI_OPENAI_RESPONSE_SERVICE_TIER =
stringKey("gen_ai.openai.response.service_tier");
+ /** A fingerprint to track any eventual change in the Generative AI environment. */
+ public static final AttributeKey GEN_AI_OPENAI_RESPONSE_SYSTEM_FINGERPRINT =
+ stringKey("gen_ai.openai.response.system_fingerprint");
+
/**
* The name of the operation being performed.
*
@@ -65,6 +69,17 @@ public final class GenAiIncubatingAttributes {
*/
@Deprecated public static final AttributeKey GEN_AI_PROMPT = stringKey("gen_ai.prompt");
+ /**
+ * The encoding formats requested in an embeddings operation, if specified.
+ *
+ * Notes:
+ *
+ *
In some GenAI systems the encoding formats are called embedding types. Also, some GenAI
+ * systems only accept a single format per request.
+ */
+ public static final AttributeKey> GEN_AI_REQUEST_ENCODING_FORMATS =
+ stringArrayKey("gen_ai.request.encoding_formats");
+
/** The frequency penalty setting for the GenAI request. */
public static final AttributeKey GEN_AI_REQUEST_FREQUENCY_PENALTY =
doubleKey("gen_ai.request.frequency_penalty");
@@ -199,6 +214,13 @@ public static final class GenAiOperationNameIncubatingValues {
*/
public static final String TEXT_COMPLETION = "text_completion";
+ /**
+ * Embeddings operation such as OpenAI Create
+ * embeddings API
+ */
+ public static final String EMBEDDINGS = "embeddings";
+
private GenAiOperationNameIncubatingValues() {}
}
@@ -216,6 +238,15 @@ public static final class GenAiSystemIncubatingValues {
/** Cohere */
public static final String COHERE = "cohere";
+ /** Azure AI Inference */
+ public static final String AZ_AI_INFERENCE = "az.ai.inference";
+
+ /** IBM Watsonx AI */
+ public static final String IBM_WATSONX_AI = "ibm.watsonx.ai";
+
+ /** AWS Bedrock */
+ public static final String AWS_BEDROCK = "aws.bedrock";
+
private GenAiSystemIncubatingValues() {}
}
diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/GeoIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/GeoIncubatingAttributes.java
new file mode 100644
index 0000000..0488161
--- /dev/null
+++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/GeoIncubatingAttributes.java
@@ -0,0 +1,78 @@
+/*
+ * Copyright The OpenTelemetry Authors
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package io.opentelemetry.semconv.incubating;
+
+import static io.opentelemetry.api.common.AttributeKey.doubleKey;
+import static io.opentelemetry.api.common.AttributeKey.stringKey;
+
+import io.opentelemetry.api.common.AttributeKey;
+
+// DO NOT EDIT, this is an Auto-generated file from
+// buildscripts/templates/registry/incubating_java/IncubatingSemanticAttributes.java.j2
+@SuppressWarnings("unused")
+public final class GeoIncubatingAttributes {
+ /** Two-letter code representing continent’s name. */
+ public static final AttributeKey GEO_CONTINENT_CODE = stringKey("geo.continent.code");
+
+ /**
+ * Two-letter ISO Country Code (ISO 3166-1
+ * alpha2).
+ */
+ public static final AttributeKey GEO_COUNTRY_ISO_CODE = stringKey("geo.country.iso_code");
+
+ /** Locality name. Represents the name of a city, town, village, or similar populated place. */
+ public static final AttributeKey GEO_LOCALITY_NAME = stringKey("geo.locality.name");
+
+ /**
+ * Latitude of the geo location in WGS84.
+ */
+ public static final AttributeKey GEO_LOCATION_LAT = doubleKey("geo.location.lat");
+
+ /**
+ * Longitude of the geo location in WGS84.
+ */
+ public static final AttributeKey GEO_LOCATION_LON = doubleKey("geo.location.lon");
+
+ /**
+ * Postal code associated with the location. Values appropriate for this field may also be known
+ * as a postcode or ZIP code and will vary widely from country to country.
+ */
+ public static final AttributeKey GEO_POSTAL_CODE = stringKey("geo.postal_code");
+
+ /** Region ISO code (ISO 3166-2). */
+ public static final AttributeKey GEO_REGION_ISO_CODE = stringKey("geo.region.iso_code");
+
+ // Enum definitions
+ /** Values for {@link #GEO_CONTINENT_CODE}. */
+ public static final class GeoContinentCodeIncubatingValues {
+ /** Africa */
+ public static final String AF = "AF";
+
+ /** Antarctica */
+ public static final String AN = "AN";
+
+ /** Asia */
+ public static final String AS = "AS";
+
+ /** Europe */
+ public static final String EU = "EU";
+
+ /** North America */
+ public static final String NA = "NA";
+
+ /** Oceania */
+ public static final String OC = "OC";
+
+ /** South America */
+ public static final String SA = "SA";
+
+ private GeoContinentCodeIncubatingValues() {}
+ }
+
+ private GeoIncubatingAttributes() {}
+}
diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/K8sIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/K8sIncubatingAttributes.java
index 4c79aad..754ecc3 100644
--- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/K8sIncubatingAttributes.java
+++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/K8sIncubatingAttributes.java
@@ -36,8 +36,6 @@ public final class K8sIncubatingAttributes {
* UUIDs as standardized by ISO/IEC
* 9834-8 and ITU-T X.667. Which states:
*
- *
- *
*
*
* If generated according to one of the mechanisms defined in Rec. ITU-T X.667 | ISO/IEC 9834-8, a
diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/NetworkIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/NetworkIncubatingAttributes.java
index f2e4ee5..7d6776e 100644
--- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/NetworkIncubatingAttributes.java
+++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/NetworkIncubatingAttributes.java
@@ -86,7 +86,7 @@ public final class NetworkIncubatingAttributes {
public static final AttributeKey NETWORK_PEER_PORT = longKey("network.peer.port");
/**
- * OSI application layer or non-OSI
+ * OSI application layer or non-OSI
* equivalent.
*
* Notes:
@@ -120,7 +120,7 @@ public final class NetworkIncubatingAttributes {
stringKey("network.protocol.version");
/**
- * OSI transport layer or OSI transport layer or inter-process communication
* method.
*
@@ -141,7 +141,7 @@ public final class NetworkIncubatingAttributes {
public static final AttributeKey NETWORK_TRANSPORT = stringKey("network.transport");
/**
- * OSI network layer or non-OSI equivalent.
+ * OSI network layer or non-OSI equivalent.
*
* Notes:
*
diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ProcessIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ProcessIncubatingAttributes.java
index 63c9588..679ce11 100644
--- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ProcessIncubatingAttributes.java
+++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ProcessIncubatingAttributes.java
@@ -80,6 +80,17 @@ public final class ProcessIncubatingAttributes {
* Profiling specific build ID for executables. See the OTel specification for Profiles for more
* information.
*/
+ public static final AttributeKey PROCESS_EXECUTABLE_BUILD_ID_HTLHASH =
+ stringKey("process.executable.build_id.htlhash");
+
+ /**
+ * "Deprecated, use {@code process.executable.build_id.htlhash} instead."
+ *
+ *
+ *
+ * @deprecated Replaced by {@code process.executable.build_id.htlhash}
+ */
+ @Deprecated
public static final AttributeKey PROCESS_EXECUTABLE_BUILD_ID_PROFILING =
stringKey("process.executable.build_id.profiling");
@@ -114,6 +125,18 @@ public final class ProcessIncubatingAttributes {
/** Whether the process is connected to an interactive shell. */
public static final AttributeKey PROCESS_INTERACTIVE = booleanKey("process.interactive");
+ /**
+ * The control group associated with the process.
+ *
+ * Notes:
+ *
+ *
Control groups (cgroups) are a kernel feature used to organize and manage process resources.
+ * This attribute provides the path(s) to the cgroup(s) associated with the process, which should
+ * match the contents of the /proc//cgroup file.
+ */
+ public static final AttributeKey PROCESS_LINUX_CGROUP = stringKey("process.linux.cgroup");
+
/** The username of the user that owns the process. */
public static final AttributeKey PROCESS_OWNER = stringKey("process.owner");
diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ServiceIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ServiceIncubatingAttributes.java
index 26408fb..529e343 100644
--- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ServiceIncubatingAttributes.java
+++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/ServiceIncubatingAttributes.java
@@ -31,7 +31,7 @@ public final class ServiceIncubatingAttributes {
*
* UUIDs are typically recommended, as only an opaque value for the purposes of identifying a
* service instance is needed. Similar to what can be seen in the man page for the {@code
+ * href="https://www.freedesktop.org/software/systemd/man/latest/machine-id.html">{@code
* /etc/machine-id} file, the underlying data, such as pod name and namespace should be
* treated as confidential, being the user's choice to expose it or not via another resource
* attribute.
diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/TestIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/TestIncubatingAttributes.java
index 55af7c7..7aee574 100644
--- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/TestIncubatingAttributes.java
+++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/TestIncubatingAttributes.java
@@ -15,7 +15,7 @@
public final class TestIncubatingAttributes {
/**
* The fully qualified human readable name of the test case.
+ * href="https://wikipedia.org/wiki/Test_case">test case
.
*/
public static final AttributeKey TEST_CASE_NAME = stringKey("test.case.name");
@@ -24,7 +24,7 @@ public final class TestIncubatingAttributes {
stringKey("test.case.result.status");
/**
- * The human readable name of a test suite.
+ * The human readable name of a test suite.
*/
public static final AttributeKey TEST_SUITE_NAME = stringKey("test.suite.name");
diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/UrlIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/UrlIncubatingAttributes.java
index 3bc553f..c409eb3 100644
--- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/UrlIncubatingAttributes.java
+++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/UrlIncubatingAttributes.java
@@ -56,12 +56,39 @@ public final class UrlIncubatingAttributes {
*
* For network calls, URL usually has {@code scheme://host[:port][path][?query][#fragment]}
* format, where the fragment is not transmitted over HTTP, but if it is known, it SHOULD be
- * included nevertheless. {@code url.full} MUST NOT contain credentials passed via URL in form of
- * {@code https://username:password@www.example.com/}. In such case username and password SHOULD
- * be redacted and attribute's value SHOULD be {@code https://REDACTED:REDACTED@www.example.com/}.
- * {@code url.full} SHOULD capture the absolute URL when it is available (or can be
- * reconstructed). Sensitive content provided in {@code url.full} SHOULD be scrubbed when
- * instrumentations can identify it.
+ * included nevertheless.
+ *
+ *
{@code url.full} MUST NOT contain credentials passed via URL in form of {@code
+ * https://username:password@www.example.com/}. In such case username and password SHOULD be
+ * redacted and attribute's value SHOULD be {@code https://REDACTED:REDACTED@www.example.com/}.
+ *
+ *
{@code url.full} SHOULD capture the absolute URL when it is available (or can be
+ * reconstructed).
+ *
+ *
Sensitive content provided in {@code url.full} SHOULD be scrubbed when instrumentations can
+ * identify it.
+ *
+ *
Query string values for the following keys SHOULD be redacted by default and replaced by the
+ * value {@code REDACTED}:
+ *
+ *
+ *
+ * This list is subject to change over time.
+ *
+ *
When a query string value is redacted, the query string key SHOULD still be preserved, e.g.
+ * {@code https://www.example.com/path?color=blue&sig=REDACTED}.
*
*
*
@@ -109,6 +136,28 @@ public final class UrlIncubatingAttributes {
*
Sensitive content provided in {@code url.query} SHOULD be scrubbed when instrumentations can
* identify it.
*
+ *
Query string values for the following keys SHOULD be redacted by default and replaced by the
+ * value {@code REDACTED}:
+ *
+ *
+ *
+ * This list is subject to change over time.
+ *
+ *
When a query string value is redacted, the query string key SHOULD still be preserved, e.g.
+ * {@code q=OpenTelemetry&sig=REDACTED}.
+ *
*
*
* @deprecated deprecated in favor of stable {@link
diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/UserAgentIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/UserAgentIncubatingAttributes.java
index ea3e21c..8639e6e 100644
--- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/UserAgentIncubatingAttributes.java
+++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/UserAgentIncubatingAttributes.java
@@ -37,6 +37,21 @@ public final class UserAgentIncubatingAttributes {
@Deprecated
public static final AttributeKey USER_AGENT_ORIGINAL = stringKey("user_agent.original");
+ /**
+ * Specifies the category of synthetic traffic, such as tests or bots.
+ *
+ * Notes:
+ *
+ *
This attribute MAY be derived from the contents of the {@code user_agent.original}
+ * attribute. Components that populate the attribute are responsible for determining what they
+ * consider to be synthetic bot or test traffic. This attribute can either be set for
+ * self-identification purposes, or on telemetry detected to be generated as a result of a
+ * synthetic request. This attribute is useful for distinguishing between genuine client traffic
+ * and synthetic traffic generated by bots or tests.
+ */
+ public static final AttributeKey USER_AGENT_SYNTHETIC_TYPE =
+ stringKey("user_agent.synthetic.type");
+
/**
* Version of the user-agent extracted from original. Usually refers to the browser's version
*
@@ -51,6 +66,16 @@ public final class UserAgentIncubatingAttributes {
public static final AttributeKey USER_AGENT_VERSION = stringKey("user_agent.version");
// Enum definitions
+ /** Values for {@link #USER_AGENT_SYNTHETIC_TYPE}. */
+ public static final class UserAgentSyntheticTypeIncubatingValues {
+ /** Bot source. */
+ public static final String BOT = "bot";
+
+ /** Synthetic test source. */
+ public static final String TEST = "test";
+
+ private UserAgentSyntheticTypeIncubatingValues() {}
+ }
private UserAgentIncubatingAttributes() {}
}
diff --git a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/VcsIncubatingAttributes.java b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/VcsIncubatingAttributes.java
index dcf6ec9..fe0baa5 100644
--- a/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/VcsIncubatingAttributes.java
+++ b/semconv-incubating/src/main/java/io/opentelemetry/semconv/incubating/VcsIncubatingAttributes.java
@@ -14,25 +14,28 @@
@SuppressWarnings("unused")
public final class VcsIncubatingAttributes {
/**
- * The ID of the change (pull request/merge request) if applicable. This is usually a unique
- * (within repository) identifier generated by the VCS system.
+ * The ID of the change (pull request/merge request/changelist) if applicable. This is usually a
+ * unique (within repository) identifier generated by the VCS system.
*/
- public static final AttributeKey VCS_REPOSITORY_CHANGE_ID =
- stringKey("vcs.repository.change.id");
+ public static final AttributeKey VCS_CHANGE_ID = stringKey("vcs.change.id");
+
+ /** The state of the change (pull request/merge request/changelist). */
+ public static final AttributeKey VCS_CHANGE_STATE = stringKey("vcs.change.state");
/**
- * The human readable title of the change (pull request/merge request). This title is often a
- * brief summary of the change and may get merged in to a ref as the commit summary.
+ * The human readable title of the change (pull request/merge request/changelist). This title is
+ * often a brief summary of the change and may get merged in to a ref as the commit summary.
*/
- public static final AttributeKey VCS_REPOSITORY_CHANGE_TITLE =
- stringKey("vcs.repository.change.title");
+ public static final AttributeKey VCS_CHANGE_TITLE = stringKey("vcs.change.title");
+
+ /** The type of line change being measured on a branch or change. */
+ public static final AttributeKey VCS_LINE_CHANGE_TYPE = stringKey("vcs.line_change.type");
/**
* The name of the reference such as
* branch or tag in the repository.
*/
- public static final AttributeKey VCS_REPOSITORY_REF_NAME =
- stringKey("vcs.repository.ref.name");
+ public static final AttributeKey VCS_REF_BASE_NAME = stringKey("vcs.ref.base.name");
/**
* The revision, literally revised
@@ -48,28 +51,220 @@ public final class VcsIncubatingAttributes {
* be a hash; it can simply define a revision number
* which is an integer that is monotonically increasing. In cases where it is identical to the
- * {@code ref.name}, it SHOULD still be included. It is up to the implementer to decide which
+ * {@code ref.base.name}, it SHOULD still be included. It is up to the implementer to decide which
* value to set as the revision based on the VCS system and situational context.
*/
- public static final AttributeKey VCS_REPOSITORY_REF_REVISION =
- stringKey("vcs.repository.ref.revision");
+ public static final AttributeKey VCS_REF_BASE_REVISION =
+ stringKey("vcs.ref.base.revision");
+
+ /**
+ * The type of the reference in the
+ * repository.
+ */
+ public static final AttributeKey VCS_REF_BASE_TYPE = stringKey("vcs.ref.base.type");
+
+ /**
+ * The name of the reference such as
+ * branch or tag in the repository.
+ */
+ public static final AttributeKey VCS_REF_HEAD_NAME = stringKey("vcs.ref.head.name");
+
+ /**
+ * The revision, literally revised
+ * version, The revision most often refers to a commit object in Git, or a revision number in
+ * SVN.
+ *
+ * Notes:
+ *
+ *
The revision can be a full hash value (see
+ * glossary), of the recorded change to a ref within a repository pointing to a commit commit object. It does not necessarily have to
+ * be a hash; it can simply define a revision number
+ * which is an integer that is monotonically increasing. In cases where it is identical to the
+ * {@code ref.head.name}, it SHOULD still be included. It is up to the implementer to decide which
+ * value to set as the revision based on the VCS system and situational context.
+ */
+ public static final AttributeKey VCS_REF_HEAD_REVISION =
+ stringKey("vcs.ref.head.revision");
/**
* The type of the reference in the
* repository.
*/
+ public static final AttributeKey VCS_REF_HEAD_TYPE = stringKey("vcs.ref.head.type");
+
+ /**
+ * The type of the reference in the
+ * repository.
+ */
+ public static final AttributeKey VCS_REF_TYPE = stringKey("vcs.ref.type");
+
+ /**
+ * Deprecated, use {@code vcs.change.id} instead.
+ *
+ *
+ *
+ * @deprecated Deprecated, use {@code vcs.change.id} instead.
+ */
+ @Deprecated
+ public static final AttributeKey VCS_REPOSITORY_CHANGE_ID =
+ stringKey("vcs.repository.change.id");
+
+ /**
+ * Deprecated, use {@code vcs.change.title} instead.
+ *
+ *
+ *
+ * @deprecated Deprecated, use {@code vcs.change.title} instead.
+ */
+ @Deprecated
+ public static final AttributeKey VCS_REPOSITORY_CHANGE_TITLE =
+ stringKey("vcs.repository.change.title");
+
+ /**
+ * Deprecated, use {@code vcs.ref.head.name} instead.
+ *
+ *
+ *
+ * @deprecated Deprecated, use {@code vcs.ref.head.name} instead.
+ */
+ @Deprecated
+ public static final AttributeKey VCS_REPOSITORY_REF_NAME =
+ stringKey("vcs.repository.ref.name");
+
+ /**
+ * Deprecated, use {@code vcs.ref.head.revision} instead.
+ *
+ *
+ *
+ * @deprecated Deprecated, use {@code vcs.ref.head.revision} instead.
+ */
+ @Deprecated
+ public static final AttributeKey VCS_REPOSITORY_REF_REVISION =
+ stringKey("vcs.repository.ref.revision");
+
+ /**
+ * Deprecated, use {@code vcs.ref.head.type} instead.
+ *
+ *
+ *
+ * @deprecated Deprecated, use {@code vcs.ref.head.type} instead.
+ */
+ @Deprecated
public static final AttributeKey VCS_REPOSITORY_REF_TYPE =
stringKey("vcs.repository.ref.type");
/**
- * The URL of the repository providing the
- * complete address in order to locate and identify the repository.
+ * The URL of the repository providing the complete
+ * address in order to locate and identify the repository.
*/
public static final AttributeKey VCS_REPOSITORY_URL_FULL =
stringKey("vcs.repository.url.full");
+ /** The type of revision comparison. */
+ public static final AttributeKey VCS_REVISION_DELTA_DIRECTION =
+ stringKey("vcs.revision_delta.direction");
+
// Enum definitions
- /** Values for {@link #VCS_REPOSITORY_REF_TYPE}. */
+ /** Values for {@link #VCS_CHANGE_STATE}. */
+ public static final class VcsChangeStateIncubatingValues {
+ /**
+ * Open means the change is currently active and under review. It hasn't been merged into the
+ * target branch yet, and it's still possible to make changes or add comments.
+ */
+ public static final String OPEN = "open";
+
+ /**
+ * WIP (work-in-progress, draft) means the change is still in progress and not yet ready for a
+ * full review. It might still undergo significant changes.
+ */
+ public static final String WIP = "wip";
+
+ /**
+ * Closed means the merge request has been closed without merging. This can happen for various
+ * reasons, such as the changes being deemed unnecessary, the issue being resolved in another
+ * way, or the author deciding to withdraw the request.
+ */
+ public static final String CLOSED = "closed";
+
+ /**
+ * Merged indicates that the change has been successfully integrated into the target codebase.
+ */
+ public static final String MERGED = "merged";
+
+ private VcsChangeStateIncubatingValues() {}
+ }
+
+ /** Values for {@link #VCS_LINE_CHANGE_TYPE}. */
+ public static final class VcsLineChangeTypeIncubatingValues {
+ /** How many lines were added. */
+ public static final String ADDED = "added";
+
+ /** How many lines were removed. */
+ public static final String REMOVED = "removed";
+
+ private VcsLineChangeTypeIncubatingValues() {}
+ }
+
+ /** Values for {@link #VCS_REF_BASE_TYPE}. */
+ public static final class VcsRefBaseTypeIncubatingValues {
+ /**
+ * branch
+ */
+ public static final String BRANCH = "branch";
+
+ /**
+ * tag
+ */
+ public static final String TAG = "tag";
+
+ private VcsRefBaseTypeIncubatingValues() {}
+ }
+
+ /** Values for {@link #VCS_REF_HEAD_TYPE}. */
+ public static final class VcsRefHeadTypeIncubatingValues {
+ /**
+ * branch
+ */
+ public static final String BRANCH = "branch";
+
+ /**
+ * tag
+ */
+ public static final String TAG = "tag";
+
+ private VcsRefHeadTypeIncubatingValues() {}
+ }
+
+ /** Values for {@link #VCS_REF_TYPE}. */
+ public static final class VcsRefTypeIncubatingValues {
+ /**
+ * branch
+ */
+ public static final String BRANCH = "branch";
+
+ /**
+ * tag
+ */
+ public static final String TAG = "tag";
+
+ private VcsRefTypeIncubatingValues() {}
+ }
+
+ /**
+ * Values for {@link #VCS_REPOSITORY_REF_TYPE}
+ *
+ * @deprecated Deprecated, use {@code vcs.ref.head.type} instead.
+ */
+ @Deprecated
public static final class VcsRepositoryRefTypeIncubatingValues {
/**
* If a specific domain defines its own set of error identifiers (such as HTTP or gRPC status
* codes), it's RECOMMENDED to:
*
- *
- *
*
* - Use a domain-specific attribute
*
- Set {@code error.type} to capture all errors, regardless of whether they are defined
diff --git a/semconv/src/main/java/io/opentelemetry/semconv/NetworkAttributes.java b/semconv/src/main/java/io/opentelemetry/semconv/NetworkAttributes.java
index f75f0a6..b45c5b9 100644
--- a/semconv/src/main/java/io/opentelemetry/semconv/NetworkAttributes.java
+++ b/semconv/src/main/java/io/opentelemetry/semconv/NetworkAttributes.java
@@ -28,7 +28,7 @@ public final class NetworkAttributes {
public static final AttributeKey NETWORK_PEER_PORT = longKey("network.peer.port");
/**
- * OSI application layer or non-OSI
+ * OSI application layer or non-OSI
* equivalent.
*
*
Notes:
@@ -52,7 +52,7 @@ public final class NetworkAttributes {
stringKey("network.protocol.version");
/**
- * OSI transport layer or OSI transport layer or inter-process communication
* method.
*
@@ -67,7 +67,7 @@ public final class NetworkAttributes {
public static final AttributeKey NETWORK_TRANSPORT = stringKey("network.transport");
/**
- * OSI network layer or non-OSI equivalent.
+ * OSI network layer or non-OSI equivalent.
*
* Notes:
*
diff --git a/semconv/src/main/java/io/opentelemetry/semconv/SchemaUrls.java b/semconv/src/main/java/io/opentelemetry/semconv/SchemaUrls.java
index 70d5358..251904a 100644
--- a/semconv/src/main/java/io/opentelemetry/semconv/SchemaUrls.java
+++ b/semconv/src/main/java/io/opentelemetry/semconv/SchemaUrls.java
@@ -7,6 +7,7 @@
public final class SchemaUrls {
+ public static final String V1_29_0 = "https://opentelemetry.io/schemas/1.29.0";
public static final String V1_28_0 = "https://opentelemetry.io/schemas/1.28.0";
public static final String V1_27_0 = "https://opentelemetry.io/schemas/1.27.0";
public static final String V1_26_0 = "https://opentelemetry.io/schemas/1.26.0";
diff --git a/semconv/src/main/java/io/opentelemetry/semconv/UrlAttributes.java b/semconv/src/main/java/io/opentelemetry/semconv/UrlAttributes.java
index 0acf3d3..751aed7 100644
--- a/semconv/src/main/java/io/opentelemetry/semconv/UrlAttributes.java
+++ b/semconv/src/main/java/io/opentelemetry/semconv/UrlAttributes.java
@@ -24,12 +24,39 @@ public final class UrlAttributes {
*
*
For network calls, URL usually has {@code scheme://host[:port][path][?query][#fragment]}
* format, where the fragment is not transmitted over HTTP, but if it is known, it SHOULD be
- * included nevertheless. {@code url.full} MUST NOT contain credentials passed via URL in form of
- * {@code https://username:password@www.example.com/}. In such case username and password SHOULD
- * be redacted and attribute's value SHOULD be {@code https://REDACTED:REDACTED@www.example.com/}.
- * {@code url.full} SHOULD capture the absolute URL when it is available (or can be
- * reconstructed). Sensitive content provided in {@code url.full} SHOULD be scrubbed when
- * instrumentations can identify it.
+ * included nevertheless.
+ *
+ *
{@code url.full} MUST NOT contain credentials passed via URL in form of {@code
+ * https://username:password@www.example.com/}. In such case username and password SHOULD be
+ * redacted and attribute's value SHOULD be {@code https://REDACTED:REDACTED@www.example.com/}.
+ *
+ *
{@code url.full} SHOULD capture the absolute URL when it is available (or can be
+ * reconstructed).
+ *
+ *
Sensitive content provided in {@code url.full} SHOULD be scrubbed when instrumentations can
+ * identify it.
+ *
+ *
Query string values for the following keys SHOULD be redacted by default and replaced by the
+ * value {@code REDACTED}:
+ *
+ *
+ *
+ * This list is subject to change over time.
+ *
+ *
When a query string value is redacted, the query string key SHOULD still be preserved, e.g.
+ * {@code https://www.example.com/path?color=blue&sig=REDACTED}.
*/
public static final AttributeKey URL_FULL = stringKey("url.full");
@@ -50,6 +77,28 @@ public final class UrlAttributes {
*
* Sensitive content provided in {@code url.query} SHOULD be scrubbed when instrumentations can
* identify it.
+ *
+ *
Query string values for the following keys SHOULD be redacted by default and replaced by the
+ * value {@code REDACTED}:
+ *
+ *
+ *
+ * This list is subject to change over time.
+ *
+ *
When a query string value is redacted, the query string key SHOULD still be preserved, e.g.
+ * {@code q=OpenTelemetry&sig=REDACTED}.
*/
public static final AttributeKey URL_QUERY = stringKey("url.query");