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 <[email protected]>
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"
+                    }
+                  ]
                 }
               ]
             }

Reply via email to