You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by wu...@apache.org on 2026/03/31 07:32:32 UTC
(skywalking) 02/05: Fix service identity and label handling for OTLP integration
This is an automated email from the ASF dual-hosted git repository.
wusheng pushed a commit to branch feature/swip-10-envoy-ai-gateway
in repository https://gitbox.apache.org/repos/asf/skywalking.git
commit 6695b88cec26bf1e6213e8df8e3a5ec41a58275c
Author: Wu Sheng <wu...@foxmail.com>
AuthorDate: Tue Mar 31 14:10:22 2026 +0800
Fix service identity and label handling for OTLP integration
- OTel metric receiver: change LABEL_MAPPINGS to fallback-only — explicit
job_name in resource attributes takes precedence over service.name mapping
- OTel log handler: prefer service.instance.id (OTel spec) over service.instance
with backward-compatible fallback
- OTel metric receiver: convert data point attribute dots to underscores
(same as resource attributes and metric names)
- MAL rules: use service_name for service identity instead of aigw_service
- Docker-compose: use OTEL_SERVICE_NAME for per-deployment service name,
explicit job_name for MAL routing
- Service dashboard: add metrics to InstanceList widget
- SampleFamily: add debugDump() for MAL debugging
- SWIP-10: updated entity model docs
---
.../otel/otlp/OpenTelemetryLogHandler.java | 8 +++++-
.../envoy_ai_gateway/envoy-ai-gateway-service.json | 32 +++++++++++++++++++++-
2 files changed, 38 insertions(+), 2 deletions(-)
diff --git a/oap-server/server-receiver-plugin/otel-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/otel/otlp/OpenTelemetryLogHandler.java b/oap-server/server-receiver-plugin/otel-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/otel/otlp/OpenTelemetryLogHandler.java
index 9bebac1077..3b9fc38c44 100644
--- a/oap-server/server-receiver-plugin/otel-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/otel/otlp/OpenTelemetryLogHandler.java
+++ b/oap-server/server-receiver-plugin/otel-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/otel/otlp/OpenTelemetryLogHandler.java
@@ -104,7 +104,13 @@ public class OpenTelemetryLogHandler
return;
}
final var layer = attributes.getOrDefault("service.layer", "");
- final var serviceInstance = attributes.getOrDefault("service.instance", "");
+ // service.instance.id is the OTel standard resource attribute for instance identity
+ // https://opentelemetry.io/docs/specs/semconv/resource/#service
+ // Fall back to service.instance for backward compatibility
+ final var instanceId = attributes.getOrDefault("service.instance.id", "");
+ final var serviceInstance = instanceId.isEmpty()
+ ? attributes.getOrDefault("service.instance", "")
+ : instanceId;
resourceLogs
.getScopeLogsList()
diff --git a/oap-server/server-starter/src/main/resources/ui-initialized-templates/envoy_ai_gateway/envoy-ai-gateway-service.json b/oap-server/server-starter/src/main/resources/ui-initialized-templates/envoy_ai_gateway/envoy-ai-gateway-service.json
index 8acd215c07..2bf622c482 100644
--- a/oap-server/server-starter/src/main/resources/ui-initialized-templates/envoy_ai_gateway/envoy-ai-gateway-service.json
+++ b/oap-server/server-starter/src/main/resources/ui-initialized-templates/envoy_ai_gateway/envoy-ai-gateway-service.json
@@ -486,7 +486,37 @@
"type": "InstanceList",
"dashboardName": "Envoy-AI-Gateway-Instance",
"fontSize": 12
- }
+ },
+ "expressions": [
+ "avg(meter_envoy_ai_gw_instance_request_cpm)",
+ "avg(meter_envoy_ai_gw_instance_request_latency_avg)",
+ "avg(meter_envoy_ai_gw_instance_input_token_rate)",
+ "avg(meter_envoy_ai_gw_instance_output_token_rate)"
+ ],
+ "subExpressions": [
+ "meter_envoy_ai_gw_instance_request_cpm",
+ "meter_envoy_ai_gw_instance_request_latency_avg",
+ "meter_envoy_ai_gw_instance_input_token_rate",
+ "meter_envoy_ai_gw_instance_output_token_rate"
+ ],
+ "metricConfig": [
+ {
+ "label": "CPM",
+ "unit": "calls/min"
+ },
+ {
+ "label": "Latency",
+ "unit": "ms"
+ },
+ {
+ "label": "Input Tokens",
+ "unit": "tokens/min"
+ },
+ {
+ "label": "Output Tokens",
+ "unit": "tokens/min"
+ }
+ ]
}
]
}