diff --git a/opentelemetry/proto/collector/logs/v1/logs_service.proto b/opentelemetry/proto/collector/logs/v1/logs_service.proto index 8df23c6c..fae46603 100644 --- a/opentelemetry/proto/collector/logs/v1/logs_service.proto +++ b/opentelemetry/proto/collector/logs/v1/logs_service.proto @@ -42,6 +42,16 @@ message ExportLogsServiceRequest { // data from multiple origins typically batch the data before forwarding further and // in that case this array will contain multiple elements. repeated opentelemetry.proto.logs.v1.ResourceLogs resource_logs = 1; + + // An idempotency key is optional information used in a server to + // detect retried requests and avoid double-counting of logging + // events. + // + // OTLP clients SHOULD include an idempotency key. Empty + // idempotency keys are invalid and MUST be ignored. A 128-bit V4 + // UUID (https://tools.ietf.org/html/rfc4122) is the + // recommended idempotency key format. + bytes idempotency_key = 2; } message ExportLogsServiceResponse { diff --git a/opentelemetry/proto/collector/metrics/v1/metrics_service.proto b/opentelemetry/proto/collector/metrics/v1/metrics_service.proto index 5a3cbee4..b96e9dea 100644 --- a/opentelemetry/proto/collector/metrics/v1/metrics_service.proto +++ b/opentelemetry/proto/collector/metrics/v1/metrics_service.proto @@ -39,6 +39,16 @@ message ExportMetricsServiceRequest { // data from multiple origins typically batch the data before forwarding further and // in that case this array will contain multiple elements. repeated opentelemetry.proto.metrics.v1.ResourceMetrics resource_metrics = 1; + + // An idempotency key is optional information used in a server to + // detect retried requests and avoid double-counting of metric + // events. + // + // OTLP clients SHOULD include an idempotency key. Empty + // idempotency keys are invalid and MUST be ignored. A 128-bit V4 + // UUID (https://tools.ietf.org/html/rfc4122) is the + // recommended idempotency key format. + bytes idempotency_key = 2; } message ExportMetricsServiceResponse { diff --git a/opentelemetry/proto/collector/trace/v1/trace_service.proto b/opentelemetry/proto/collector/trace/v1/trace_service.proto index 37d02372..be87c607 100644 --- a/opentelemetry/proto/collector/trace/v1/trace_service.proto +++ b/opentelemetry/proto/collector/trace/v1/trace_service.proto @@ -39,6 +39,16 @@ message ExportTraceServiceRequest { // data from multiple origins typically batch the data before forwarding further and // in that case this array will contain multiple elements. repeated opentelemetry.proto.trace.v1.ResourceSpans resource_spans = 1; + + // An idempotency key is optional information used in a server to + // detect retried requests and avoid double-counting of tracinfg + // events. + // + // OTLP clients SHOULD include an idempotency key. Empty + // idempotency keys are invalid and MUST be ignored. A 128-bit V4 + // UUID (https://tools.ietf.org/html/rfc4122) is the + // recommended idempotency key format. + bytes idempotency_key = 2; } message ExportTraceServiceResponse {