From 70d1597a9286cb0dcdb9dac6c51c4ca9abf38a24 Mon Sep 17 00:00:00 2001 From: Milosz Marcinkowski <38698566+miloszmarcinkowski@users.noreply.github.com> Date: Wed, 16 Oct 2024 11:09:21 +0200 Subject: [PATCH] [APM][OTel] Make agent names generic with otel-native mode (#195594) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #195583 ### Summary In the effort of making [APM UI work with otel-native mode](https://github.com/elastic/opentelemetry-dev/issues/385) we introduced possibility for having any kind of agent names matching the following format: `opentelemetry/*` or `otlp/*`. This change forced us to modify the way we collect data in 'services' and 'agents' tasks in apm telemetry. Before the change, we could group data by agent names that were known ahead of time. Right now, for opentelemetry agents, we have to group them by unique values. To achieve the following, we decided to run two ES queries: 1. Collects data by the known list of non-opentelemetry agents names (the same approach as before but without opentelemetry agent names) 2. (_New_) Collects data starting from `opentelemetry/*` or `otlp/*` and group them by unique value To achieve backward compatibility, we initialize previously known `opentelemetry/*` or `otlp/*` agent names with empty values before collecting data. This way the new collectors match the old format, adding only unique opentelemetry agent names. ### How to test 1. Change schedule interval to `1m` (default `720m`) in `x-pack/plugins/observability_solution/apm/server/lib/apm_telemetry/index.ts` 2. Run kibana server in debug mode (`yarn debug-break`) and place breakpoints in 'services' and 'agents' in `x-pack/plugins/observability_solution/apm/server/lib/apm_telemetry/collect_data_telemetry/tasks.ts` 3. Verify tasks outputs:
`Services` task old output: ```json { "dotnet": 6, "go": 22, "iOS/swift": 1, "java": 11, "js-base": 0, "nodejs": 12, "php": 1, "python": 2, "ruby": 2, "rum-js": 3, "android/java": 1, "ios/swift": 0, "otlp": 0, "opentelemetry": 0, "opentelemetry/cpp": 0, "opentelemetry/dotnet": 1, "opentelemetry/erlang": 1, "opentelemetry/go": 2, "opentelemetry/java": 4, "opentelemetry/nodejs": 2, "opentelemetry/php": 0, "opentelemetry/python": 1, "opentelemetry/ruby": 0, "opentelemetry/rust": 0, "opentelemetry/swift": 0, "opentelemetry/android": 0, "opentelemetry/webjs": 0, "otlp/cpp": 0, "otlp/dotnet": 0, "otlp/erlang": 0, "otlp/go": 0, "otlp/java": 0, "otlp/nodejs": 0, "otlp/php": 0, "otlp/python": 0, "otlp/ruby": 0, "otlp/rust": 0, "otlp/swift": 0, "otlp/android": 0, "otlp/webjs": 0 } ```
`Services` task new output: ```json { "dotnet": 6, "go": 22, "iOS/swift": 1, "java": 11, "js-base": 0, "nodejs": 12, "php": 1, "python": 2, "ruby": 2, "rum-js": 3, "android/java": 1, "otlp": 0, "opentelemetry": 0, "opentelemetry/cpp": 0, "opentelemetry/dotnet": 1, "opentelemetry/erlang": 1, "opentelemetry/go": 2, "opentelemetry/java": 4, "opentelemetry/nodejs": 2, "opentelemetry/php": 0, "opentelemetry/python": 1, "opentelemetry/ruby": 0, "opentelemetry/rust": 0, "opentelemetry/swift": 0, "opentelemetry/android": 0, "opentelemetry/webjs": 0, "otlp/cpp": 0, "otlp/dotnet": 0, "otlp/erlang": 0, "otlp/go": 0, "otlp/java": 0, "otlp/nodejs": 0, "otlp/php": 0, "otlp/python": 0, "otlp/ruby": 0, "otlp/rust": 0, "otlp/swift": 0, "otlp/android": 0, "otlp/webjs": 0, "ios/swift": 0 } ```
`Agents` task old output: ```json { "dotnet": { "agent": { "activation_method": [], "version": [ "1.19.0+f72bf10e024b0bad4601ccda7fdea7db46c71640" ] }, "service": { "framework": { "name": [ "ASP.NET Core" ], "version": [ "3.1.7.0" ], "composite": [ "ASP.NET Core/3.1.7.0" ] }, "language": { "name": [ "C#" ], "version": [], "composite": [] }, "runtime": { "name": [ "AWS_lambda", ".NET Core" ], "version": [ "3.1.7" ], "composite": [ ".NET Core/3.1.7" ] } } }, "go": { "agent": { "activation_method": [], "version": [ "2.6.0" ] }, "service": { "framework": { "name": [ "gin" ], "version": [ "v1.10.0" ], "composite": [ "gin/v1.10.0" ] }, "language": { "name": [ "go" ], "version": [ "go1.22.7", "go1.18.3" ], "composite": [ "go/go1.22.7", "go/go1.18.3" ] }, "runtime": { "name": [ "gc" ], "version": [ "go1.22.7", "go1.18.3" ], "composite": [ "gc/go1.22.7", "gc/go1.18.3" ] } } }, "iOS/swift": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [ "iOS" ], "version": [], "composite": [] }, "language": { "name": [ "java" ], "version": [], "composite": [] }, "runtime": { "name": [ "iOS" ], "version": [ "13", "9", "11" ], "composite": [ "iOS/13", "iOS/9", "iOS/11" ] } } }, "java": { "agent": { "activation_method": [ "k8s-attach" ], "version": [ "1.38.0" ] }, "service": { "framework": { "name": [ "Spring Web MVC", "Servlet API" ], "version": [ "6.1.11" ], "composite": [ "Spring Web MVC/6.1.11" ] }, "language": { "name": [ "Java" ], "version": [ "17.0.12" ], "composite": [ "Java/17.0.12" ] }, "runtime": { "name": [ "Java" ], "version": [ "17.0.12" ], "composite": [ "Java/17.0.12" ] } } }, "js-base": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "nodejs": { "agent": { "activation_method": [ "env-attach", "require" ], "version": [ "3.46.0", "4.7.2" ] }, "service": { "framework": { "name": [ "express" ], "version": [ "4.19.2", "4.18.2" ], "composite": [ "express/4.19.2", "express/4.18.2" ] }, "language": { "name": [ "javascript" ], "version": [], "composite": [] }, "runtime": { "name": [ "AWS_lambda", "node" ], "version": [ "18.13.0", "22.5.1" ], "composite": [ "node/18.13.0", "node/22.5.1" ] } } }, "php": { "agent": { "activation_method": [], "version": [ "1.8.4" ] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [ "PHP" ], "version": [ "8.0.30" ], "composite": [ "PHP/8.0.30" ] }, "runtime": { "name": [ "PHP" ], "version": [ "8.0.30" ], "composite": [ "PHP/8.0.30" ] } } }, "python": { "agent": { "activation_method": [ "unknown" ], "version": [ "6.22.3" ] }, "service": { "framework": { "name": [ "django" ], "version": [ "5.0.7" ], "composite": [ "django/5.0.7" ] }, "language": { "name": [ "python" ], "version": [ "3.12.4" ], "composite": [ "python/3.12.4" ] }, "runtime": { "name": [ "AWS_lambda", "CPython" ], "version": [ "3.12.4" ], "composite": [ "CPython/3.12.4" ] } } }, "ruby": { "agent": { "activation_method": [], "version": [ "4.7.3" ] }, "service": { "framework": { "name": [ "Ruby on Rails" ], "version": [ "6.1.4.1" ], "composite": [ "Ruby on Rails/6.1.4.1" ] }, "language": { "name": [ "ruby" ], "version": [ "2.7.3" ], "composite": [ "ruby/2.7.3" ] }, "runtime": { "name": [ "ruby" ], "version": [ "2.7.3" ], "composite": [ "ruby/2.7.3" ] } } }, "rum-js": { "agent": { "activation_method": [], "version": [ "5.16.0" ] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [ "javascript" ], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "android/java": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [ "Android Activity" ], "version": [], "composite": [] }, "language": { "name": [ "java" ], "version": [], "composite": [] }, "runtime": { "name": [ "Android Runtime" ], "version": [ "2.1.0", "1.9.0", "2.0.0" ], "composite": [ "Android Runtime/2.1.0", "Android Runtime/1.9.0", "Android Runtime/2.0.0" ] } } }, "otlp": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "opentelemetry": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "opentelemetry/cpp": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "opentelemetry/dotnet": { "agent": { "activation_method": [], "version": [ "1.4.0.802" ] }, "service": { "framework": { "name": [ "OpenTelemetry.Instrumentation.Runtime" ], "version": [ "1.1.0.2" ], "composite": [ "OpenTelemetry.Instrumentation.Runtime/1.1.0.2" ] }, "language": { "name": [ "dotnet" ], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "opentelemetry/erlang": { "agent": { "activation_method": [], "version": [ "1.2.1" ] }, "service": { "framework": { "name": [ "opentelemetry_ecto", "opentelemetry_phoenix" ], "version": [ "1.0.0" ], "composite": [ "opentelemetry_ecto/1.0.0", "opentelemetry_phoenix/1.0.0" ] }, "language": { "name": [ "erlang" ], "version": [], "composite": [] }, "runtime": { "name": [ "BEAM" ], "version": [ "11.2.2.8" ], "composite": [ "BEAM/11.2.2.8" ] } } }, "opentelemetry/go": { "agent": { "activation_method": [], "version": [ "1.10.0", "1.11.2" ] }, "service": { "framework": { "name": [ "go.opentelemetry.io/contrib/instrumentation/runtime" ], "version": [ "semver:0.36.1", "semver:0.36.4" ], "composite": [ "go.opentelemetry.io/contrib/instrumentation/runtime/semver:0.36.4", "go.opentelemetry.io/contrib/instrumentation/runtime/semver:0.36.1" ] }, "language": { "name": [ "go" ], "version": [], "composite": [] }, "runtime": { "name": [ "go" ], "version": [ "go1.19.2", "go1.19.4" ], "composite": [ "go/go1.19.4", "go/go1.19.2" ] } } }, "opentelemetry/java": { "agent": { "activation_method": [], "version": [ "1.10.1", "1.23.1", "1.24.0" ] }, "service": { "framework": { "name": [ "io.opentelemetry.tomcat-10.0", "io.opentelemetry.jdbc", "io.opentelemetry.spring-data-1.8" ], "version": [ "1.10.1", "1.23.0-alpha", "1.24.0-alpha" ], "composite": [ "io.opentelemetry.tomcat-10.0/1.10.1", "io.opentelemetry.jdbc/1.10.1", "io.opentelemetry.spring-data-1.8/1.10.1" ] }, "language": { "name": [ "java" ], "version": [], "composite": [] }, "runtime": { "name": [ "OpenJDK Runtime Environment" ], "version": [ "17.0.12+7", "11.0.18+10-LTS", "17.0.6+10-Debian-1deb11u1" ], "composite": [ "OpenJDK Runtime Environment/17.0.12+7", "OpenJDK Runtime Environment/11.0.18+10-LTS", "OpenJDK Runtime Environment/17.0.6+10-Debian-1deb11u1" ] } } }, "opentelemetry/nodejs": { "agent": { "activation_method": [], "version": [ "1.10.1", "1.9.0" ] }, "service": { "framework": { "name": [ "@opentelemetry/instrumentation-fs", "@opentelemetry/instrumentation-http", "@opentelemetry/instrumentation-net" ], "version": [ "0.7.1", "0.6.0", "0.35.1" ], "composite": [ "@opentelemetry/instrumentation-fs/0.7.1", "@opentelemetry/instrumentation-fs/0.6.0", "@opentelemetry/instrumentation-http/0.35.1" ] }, "language": { "name": [ "nodejs" ], "version": [], "composite": [] }, "runtime": { "name": [ "nodejs" ], "version": [ "18.16.0", "16.20.0" ], "composite": [ "nodejs/18.16.0", "nodejs/16.20.0" ] } } }, "opentelemetry/php": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "opentelemetry/python": { "agent": { "activation_method": [], "version": [ "1.15.0" ] }, "service": { "framework": { "name": [ "opentelemetry.instrumentation.system_metrics" ], "version": [ "0.36b0" ], "composite": [ "opentelemetry.instrumentation.system_metrics/0.36b0" ] }, "language": { "name": [ "python" ], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "opentelemetry/ruby": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "opentelemetry/rust": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "opentelemetry/swift": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "opentelemetry/android": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "opentelemetry/webjs": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "otlp/cpp": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "otlp/dotnet": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "otlp/erlang": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "otlp/go": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "otlp/java": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "otlp/nodejs": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "otlp/php": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "otlp/python": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "otlp/ruby": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "otlp/rust": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "otlp/swift": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "otlp/android": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "otlp/webjs": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "ios/swift": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } } } ```
`Agents` task new output: ```json { "dotnet": { "agent": { "activation_method": [], "version": [ "1.19.0+f72bf10e024b0bad4601ccda7fdea7db46c71640" ] }, "service": { "framework": { "name": [ "ASP.NET Core" ], "version": [ "3.1.7.0" ], "composite": [ "ASP.NET Core/3.1.7.0" ] }, "language": { "name": [ "C#" ], "version": [], "composite": [] }, "runtime": { "name": [ "AWS_lambda", ".NET Core" ], "version": [ "3.1.7" ], "composite": [ ".NET Core/3.1.7" ] } } }, "go": { "agent": { "activation_method": [], "version": [ "2.6.0" ] }, "service": { "framework": { "name": [ "gin" ], "version": [ "v1.10.0" ], "composite": [ "gin/v1.10.0" ] }, "language": { "name": [ "go" ], "version": [ "go1.22.7", "go1.18.3" ], "composite": [ "go/go1.22.7", "go/go1.18.3" ] }, "runtime": { "name": [ "gc" ], "version": [ "go1.22.7", "go1.18.3" ], "composite": [ "gc/go1.22.7", "gc/go1.18.3" ] } } }, "iOS/swift": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [ "iOS" ], "version": [], "composite": [] }, "language": { "name": [ "java" ], "version": [], "composite": [] }, "runtime": { "name": [ "iOS" ], "version": [ "13", "9", "11" ], "composite": [ "iOS/13", "iOS/9", "iOS/11" ] } } }, "java": { "agent": { "activation_method": [ "k8s-attach" ], "version": [ "1.38.0" ] }, "service": { "framework": { "name": [ "Spring Web MVC", "Servlet API" ], "version": [ "6.1.11" ], "composite": [ "Spring Web MVC/6.1.11" ] }, "language": { "name": [ "Java" ], "version": [ "17.0.12" ], "composite": [ "Java/17.0.12" ] }, "runtime": { "name": [ "Java" ], "version": [ "17.0.12" ], "composite": [ "Java/17.0.12" ] } } }, "js-base": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "nodejs": { "agent": { "activation_method": [ "env-attach", "require" ], "version": [ "3.46.0", "4.7.2" ] }, "service": { "framework": { "name": [ "express" ], "version": [ "4.19.2", "4.18.2" ], "composite": [ "express/4.19.2", "express/4.18.2" ] }, "language": { "name": [ "javascript" ], "version": [], "composite": [] }, "runtime": { "name": [ "AWS_lambda", "node" ], "version": [ "18.13.0", "22.5.1" ], "composite": [ "node/18.13.0", "node/22.5.1" ] } } }, "php": { "agent": { "activation_method": [], "version": [ "1.8.4" ] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [ "PHP" ], "version": [ "8.0.30" ], "composite": [ "PHP/8.0.30" ] }, "runtime": { "name": [ "PHP" ], "version": [ "8.0.30" ], "composite": [ "PHP/8.0.30" ] } } }, "python": { "agent": { "activation_method": [ "unknown" ], "version": [ "6.22.3" ] }, "service": { "framework": { "name": [ "django" ], "version": [ "5.0.7" ], "composite": [ "django/5.0.7" ] }, "language": { "name": [ "python" ], "version": [ "3.12.4" ], "composite": [ "python/3.12.4" ] }, "runtime": { "name": [ "AWS_lambda", "CPython" ], "version": [ "3.12.4" ], "composite": [ "CPython/3.12.4" ] } } }, "ruby": { "agent": { "activation_method": [], "version": [ "4.7.3" ] }, "service": { "framework": { "name": [ "Ruby on Rails" ], "version": [ "6.1.4.1" ], "composite": [ "Ruby on Rails/6.1.4.1" ] }, "language": { "name": [ "ruby" ], "version": [ "2.7.3" ], "composite": [ "ruby/2.7.3" ] }, "runtime": { "name": [ "ruby" ], "version": [ "2.7.3" ], "composite": [ "ruby/2.7.3" ] } } }, "rum-js": { "agent": { "activation_method": [], "version": [ "5.16.0" ] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [ "javascript" ], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "android/java": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [ "Android Activity" ], "version": [], "composite": [] }, "language": { "name": [ "java" ], "version": [], "composite": [] }, "runtime": { "name": [ "Android Runtime" ], "version": [ "2.1.0", "1.9.0", "2.0.0" ], "composite": [ "Android Runtime/2.1.0", "Android Runtime/1.9.0", "Android Runtime/2.0.0" ] } } }, "ios/swift": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "otlp": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "opentelemetry": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "opentelemetry/cpp": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "opentelemetry/dotnet": { "agent": { "activation_method": [], "version": [ "1.4.0.802" ] }, "service": { "framework": { "name": [ "OpenTelemetry.Instrumentation.Runtime" ], "version": [ "1.1.0.2" ], "composite": [ "OpenTelemetry.Instrumentation.Runtime/1.1.0.2" ] }, "language": { "name": [ "dotnet" ], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "opentelemetry/erlang": { "agent": { "activation_method": [], "version": [ "1.2.1" ] }, "service": { "framework": { "name": [ "opentelemetry_ecto", "opentelemetry_phoenix" ], "version": [ "1.0.0" ], "composite": [ "opentelemetry_ecto/1.0.0", "opentelemetry_phoenix/1.0.0" ] }, "language": { "name": [ "erlang" ], "version": [], "composite": [] }, "runtime": { "name": [ "BEAM" ], "version": [ "11.2.2.8" ], "composite": [ "BEAM/11.2.2.8" ] } } }, "opentelemetry/go": { "agent": { "activation_method": [], "version": [ "1.10.0", "1.11.2" ] }, "service": { "framework": { "name": [ "go.opentelemetry.io/contrib/instrumentation/runtime" ], "version": [ "semver:0.36.1", "semver:0.36.4" ], "composite": [ "go.opentelemetry.io/contrib/instrumentation/runtime/semver:0.36.4", "go.opentelemetry.io/contrib/instrumentation/runtime/semver:0.36.1" ] }, "language": { "name": [ "go" ], "version": [], "composite": [] }, "runtime": { "name": [ "go" ], "version": [ "go1.19.2", "go1.19.4" ], "composite": [ "go/go1.19.4", "go/go1.19.2" ] } } }, "opentelemetry/java": { "agent": { "activation_method": [], "version": [ "1.10.1", "1.23.1", "1.24.0" ] }, "service": { "framework": { "name": [ "io.opentelemetry.tomcat-10.0", "io.opentelemetry.jdbc", "io.opentelemetry.spring-data-1.8" ], "version": [ "1.10.1", "1.23.0-alpha", "1.24.0-alpha" ], "composite": [ "io.opentelemetry.tomcat-10.0/1.10.1", "io.opentelemetry.jdbc/1.10.1", "io.opentelemetry.spring-data-1.8/1.10.1" ] }, "language": { "name": [ "java" ], "version": [], "composite": [] }, "runtime": { "name": [ "OpenJDK Runtime Environment" ], "version": [ "17.0.12+7", "11.0.18+10-LTS", "17.0.6+10-Debian-1deb11u1" ], "composite": [ "OpenJDK Runtime Environment/17.0.12+7", "OpenJDK Runtime Environment/11.0.18+10-LTS", "OpenJDK Runtime Environment/17.0.6+10-Debian-1deb11u1" ] } } }, "opentelemetry/nodejs": { "agent": { "activation_method": [], "version": [ "1.10.1", "1.9.0" ] }, "service": { "framework": { "name": [ "@opentelemetry/instrumentation-fs", "@opentelemetry/instrumentation-http", "@opentelemetry/instrumentation-net" ], "version": [ "0.7.1", "0.6.0", "0.35.1" ], "composite": [ "@opentelemetry/instrumentation-fs/0.7.1", "@opentelemetry/instrumentation-fs/0.6.0", "@opentelemetry/instrumentation-http/0.35.1" ] }, "language": { "name": [ "nodejs" ], "version": [], "composite": [] }, "runtime": { "name": [ "nodejs" ], "version": [ "18.16.0", "16.20.0" ], "composite": [ "nodejs/18.16.0", "nodejs/16.20.0" ] } } }, "opentelemetry/php": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "opentelemetry/python": { "agent": { "activation_method": [], "version": [ "1.15.0" ] }, "service": { "framework": { "name": [ "opentelemetry.instrumentation.system_metrics" ], "version": [ "0.36b0" ], "composite": [ "opentelemetry.instrumentation.system_metrics/0.36b0" ] }, "language": { "name": [ "python" ], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "opentelemetry/ruby": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "opentelemetry/rust": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "opentelemetry/swift": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "opentelemetry/android": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "opentelemetry/webjs": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "otlp/cpp": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "otlp/dotnet": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "otlp/erlang": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "otlp/go": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "otlp/java": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "otlp/nodejs": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "otlp/php": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "otlp/python": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "otlp/ruby": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "otlp/rust": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "otlp/swift": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "otlp/android": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } }, "otlp/webjs": { "agent": { "activation_method": [], "version": [] }, "service": { "framework": { "name": [], "version": [], "composite": [] }, "language": { "name": [], "version": [], "composite": [] }, "runtime": { "name": [], "version": [], "composite": [] } } } } ```
--------- Co-authored-by: Alejandro Fernández Haro --- .../src/agent_names.ts | 34 +- .../telemetry_collectors/constants.ts | 3 + .../src/tools/serializer.test.ts | 7 + .../src/tools/serializer.ts | 11 +- .../__snapshots__/apm_telemetry.test.ts.snap | 2610 ++++++++++++ .../__snapshots__/tasks.test.ts.snap | 1178 ++++++ .../collect_data_telemetry/tasks.test.ts | 146 + .../collect_data_telemetry/tasks.ts | 485 ++- .../apm/server/lib/apm_telemetry/schema.ts | 33 +- .../apm/server/lib/apm_telemetry/types.ts | 4 +- .../schema/xpack_plugins.json | 3567 +++++++++++++++++ 11 files changed, 7910 insertions(+), 168 deletions(-) diff --git a/packages/kbn-elastic-agent-utils/src/agent_names.ts b/packages/kbn-elastic-agent-utils/src/agent_names.ts index 0405da9cf2193..a78433780f1ad 100644 --- a/packages/kbn-elastic-agent-utils/src/agent_names.ts +++ b/packages/kbn-elastic-agent-utils/src/agent_names.ts @@ -38,37 +38,13 @@ export const ELASTIC_AGENT_NAMES: ElasticAgentName[] = [ ]; export type OpenTelemetryAgentName = - | 'otlp' | 'opentelemetry' - | 'opentelemetry/cpp' - | 'opentelemetry/dotnet' - | 'opentelemetry/erlang' - | 'opentelemetry/go' - | 'opentelemetry/java' - | 'opentelemetry/nodejs' - | 'opentelemetry/php' - | 'opentelemetry/python' - | 'opentelemetry/ruby' - | 'opentelemetry/rust' - | 'opentelemetry/swift' - | 'opentelemetry/android' - | 'opentelemetry/webjs' - | 'otlp/cpp' - | 'otlp/dotnet' - | 'otlp/erlang' - | 'otlp/go' - | 'otlp/java' - | 'otlp/nodejs' - | 'otlp/php' - | 'otlp/python' - | 'otlp/ruby' - | 'otlp/rust' - | 'otlp/swift' - | 'otlp/android' - | 'otlp/webjs'; + | 'otlp' + | `opentelemetry/${string}` + | `otlp/${string}`; +export const OPEN_TELEMETRY_BASE_AGENT_NAMES: OpenTelemetryAgentName[] = ['otlp', 'opentelemetry']; export const OPEN_TELEMETRY_AGENT_NAMES: OpenTelemetryAgentName[] = [ - 'otlp', - 'opentelemetry', + ...OPEN_TELEMETRY_BASE_AGENT_NAMES, 'opentelemetry/cpp', 'opentelemetry/dotnet', 'opentelemetry/erlang', diff --git a/packages/kbn-telemetry-tools/src/tools/__fixture__/telemetry_collectors/constants.ts b/packages/kbn-telemetry-tools/src/tools/__fixture__/telemetry_collectors/constants.ts index c9b0cbfe0281a..ec8b935912cd7 100644 --- a/packages/kbn-telemetry-tools/src/tools/__fixture__/telemetry_collectors/constants.ts +++ b/packages/kbn-telemetry-tools/src/tools/__fixture__/telemetry_collectors/constants.ts @@ -60,6 +60,9 @@ export interface MappedTypes { mappedTypeWithOneInlineProp: { [key in 'prop3']: number; }; + mappedTypeWithLiteralTemplates: { + [key in MappedTypeProps | `templated_prop/${string}`]: number; + }; } export type RecordWithKnownProps = Record; diff --git a/packages/kbn-telemetry-tools/src/tools/serializer.test.ts b/packages/kbn-telemetry-tools/src/tools/serializer.test.ts index 4301ab30fd09e..86f897767a025 100644 --- a/packages/kbn-telemetry-tools/src/tools/serializer.test.ts +++ b/packages/kbn-telemetry-tools/src/tools/serializer.test.ts @@ -105,6 +105,13 @@ describe('getDescriptor', () => { mappedTypeWithOneInlineProp: { prop3: { kind: ts.SyntaxKind.NumberKeyword, type: 'NumberKeyword' }, }, + mappedTypeWithLiteralTemplates: { + prop1: { kind: ts.SyntaxKind.NumberKeyword, type: 'NumberKeyword' }, + prop2: { kind: ts.SyntaxKind.NumberKeyword, type: 'NumberKeyword' }, + // ideally, it'd be `templated_prop/@@INDEX@@` to be more explicit. But we're going with the fuzzier approach + // for now as it may require more changes downstream that are not worth it. + '@@INDEX@@': { kind: ts.SyntaxKind.NumberKeyword, type: 'NumberKeyword' }, + }, }); }); diff --git a/packages/kbn-telemetry-tools/src/tools/serializer.ts b/packages/kbn-telemetry-tools/src/tools/serializer.ts index 2523bc246d2a8..0269dc446b4a0 100644 --- a/packages/kbn-telemetry-tools/src/tools/serializer.ts +++ b/packages/kbn-telemetry-tools/src/tools/serializer.ts @@ -99,10 +99,15 @@ export function getConstraints(node: ts.Node, program: ts.Program): any { return node.literal.text; } - if (ts.isStringLiteral(node)) { + if (ts.isStringLiteral(node) || ts.isStringLiteralLike(node)) { return node.text; } + // template literals such as `smth/${string}` + if (ts.isTemplateLiteralTypeNode(node) || ts.isTemplateExpression(node)) { + return '@@INDEX@@'; // just map it to any kind of string. We can enforce it further in the future if we see fit. + } + if (ts.isImportSpecifier(node) || ts.isExportSpecifier(node)) { const source = node.getSourceFile(); const importedModuleName = getModuleSpecifier(node); @@ -180,9 +185,9 @@ export function getDescriptor(node: ts.Node, program: ts.Program): Descriptor | const constraintsArray = Array.isArray(constraints) ? constraints : [constraints]; if (typeof constraintsArray[0] === 'string') { return constraintsArray.reduce((acc, c) => { - (acc as Record)[c] = descriptor; + acc[c] = descriptor; return acc; - }, {}); + }, {} as Record); } } return { '@@INDEX@@': descriptor }; diff --git a/x-pack/plugins/observability_solution/apm/common/__snapshots__/apm_telemetry.test.ts.snap b/x-pack/plugins/observability_solution/apm/common/__snapshots__/apm_telemetry.test.ts.snap index d0aa75c2170f1..e719db52a397b 100644 --- a/x-pack/plugins/observability_solution/apm/common/__snapshots__/apm_telemetry.test.ts.snap +++ b/x-pack/plugins/observability_solution/apm/common/__snapshots__/apm_telemetry.test.ts.snap @@ -1246,6 +1246,2616 @@ exports[`APM telemetry helpers getApmTelemetry generates a JSON object with the } } } + }, + "otlp": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + }, + "activation_method": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + }, + "opentelemetry": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + }, + "activation_method": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + }, + "opentelemetry/cpp": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + }, + "activation_method": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + }, + "opentelemetry/dotnet": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + }, + "activation_method": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + }, + "opentelemetry/erlang": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + }, + "activation_method": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + }, + "opentelemetry/go": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + }, + "activation_method": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + }, + "opentelemetry/java": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + }, + "activation_method": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + }, + "opentelemetry/nodejs": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + }, + "activation_method": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + }, + "opentelemetry/php": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + }, + "activation_method": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + }, + "opentelemetry/python": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + }, + "activation_method": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + }, + "opentelemetry/ruby": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + }, + "activation_method": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + }, + "opentelemetry/rust": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + }, + "activation_method": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + }, + "opentelemetry/swift": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + }, + "activation_method": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + }, + "opentelemetry/android": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + }, + "activation_method": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + }, + "opentelemetry/webjs": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + }, + "activation_method": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + }, + "otlp/cpp": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + }, + "activation_method": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + }, + "otlp/dotnet": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + }, + "activation_method": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + }, + "otlp/erlang": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + }, + "activation_method": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + }, + "otlp/go": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + }, + "activation_method": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + }, + "otlp/java": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + }, + "activation_method": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + }, + "otlp/nodejs": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + }, + "activation_method": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + }, + "otlp/php": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + }, + "activation_method": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + }, + "otlp/python": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + }, + "activation_method": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + }, + "otlp/ruby": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + }, + "activation_method": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + }, + "otlp/rust": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + }, + "activation_method": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + }, + "otlp/swift": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + }, + "activation_method": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + }, + "otlp/android": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + }, + "activation_method": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + }, + "otlp/webjs": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + }, + "activation_method": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + }, + "ios/swift": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + }, + "activation_method": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + }, + "version": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + }, + "composite": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } } } }, diff --git a/x-pack/plugins/observability_solution/apm/server/lib/apm_telemetry/collect_data_telemetry/__snapshots__/tasks.test.ts.snap b/x-pack/plugins/observability_solution/apm/server/lib/apm_telemetry/collect_data_telemetry/__snapshots__/tasks.test.ts.snap index 0cfc50412dac4..e3bb9a2525782 100644 --- a/x-pack/plugins/observability_solution/apm/server/lib/apm_telemetry/collect_data_telemetry/__snapshots__/tasks.test.ts.snap +++ b/x-pack/plugins/observability_solution/apm/server/lib/apm_telemetry/collect_data_telemetry/__snapshots__/tasks.test.ts.snap @@ -1,5 +1,1132 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`data telemetry collection tasks agents should return agent data per agent name 1`] = ` +Object { + "agents": Object { + "android/java": Object { + "agent": Object { + "activation_method": Array [], + "version": Array [], + }, + "service": Object { + "framework": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "language": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "runtime": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + }, + }, + "dotnet": Object { + "agent": Object { + "activation_method": Array [], + "version": Array [], + }, + "service": Object { + "framework": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "language": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "runtime": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + }, + }, + "go": Object { + "agent": Object { + "activation_method": Array [], + "version": Array [], + }, + "service": Object { + "framework": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "language": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "runtime": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + }, + }, + "iOS/swift": Object { + "agent": Object { + "activation_method": Array [], + "version": Array [], + }, + "service": Object { + "framework": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "language": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "runtime": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + }, + }, + "ios/swift": Object { + "agent": Object { + "activation_method": Array [], + "version": Array [], + }, + "service": Object { + "framework": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "language": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "runtime": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + }, + }, + "java": Object { + "agent": Object { + "activation_method": Array [ + "k8s-attach", + ], + "version": Array [ + "1.38.0", + ], + }, + "service": Object { + "framework": Object { + "composite": Array [ + "Spring Web MVC/1.10.1", + ], + "name": Array [ + "Spring Web MVC", + ], + "version": Array [ + "6.1.11", + ], + }, + "language": Object { + "composite": Array [ + "Java/17.0.12", + ], + "name": Array [ + "Java", + ], + "version": Array [ + "17.0.12", + ], + }, + "runtime": Object { + "composite": Array [ + "Java/17.0.12", + ], + "name": Array [ + "Java", + ], + "version": Array [ + "17.0.12", + ], + }, + }, + }, + "js-base": Object { + "agent": Object { + "activation_method": Array [], + "version": Array [], + }, + "service": Object { + "framework": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "language": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "runtime": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + }, + }, + "nodejs": Object { + "agent": Object { + "activation_method": Array [], + "version": Array [], + }, + "service": Object { + "framework": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "language": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "runtime": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + }, + }, + "opentelemetry": Object { + "agent": Object { + "activation_method": Array [ + "k8s-attach", + ], + "version": Array [ + "1.38.0", + ], + }, + "service": Object { + "framework": Object { + "composite": Array [ + "Spring Web MVC/1.10.1", + ], + "name": Array [ + "Spring Web MVC", + ], + "version": Array [ + "6.1.11", + ], + }, + "language": Object { + "composite": Array [ + "Java/17.0.12", + ], + "name": Array [ + "Java", + ], + "version": Array [ + "17.0.12", + ], + }, + "runtime": Object { + "composite": Array [ + "Java/17.0.12", + ], + "name": Array [ + "Java", + ], + "version": Array [ + "17.0.12", + ], + }, + }, + }, + "opentelemetry/android": Object { + "agent": Object { + "activation_method": Array [], + "version": Array [], + }, + "service": Object { + "framework": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "language": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "runtime": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + }, + }, + "opentelemetry/cpp": Object { + "agent": Object { + "activation_method": Array [], + "version": Array [], + }, + "service": Object { + "framework": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "language": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "runtime": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + }, + }, + "opentelemetry/dotnet": Object { + "agent": Object { + "activation_method": Array [], + "version": Array [], + }, + "service": Object { + "framework": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "language": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "runtime": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + }, + }, + "opentelemetry/erlang": Object { + "agent": Object { + "activation_method": Array [], + "version": Array [], + }, + "service": Object { + "framework": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "language": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "runtime": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + }, + }, + "opentelemetry/go": Object { + "agent": Object { + "activation_method": Array [], + "version": Array [], + }, + "service": Object { + "framework": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "language": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "runtime": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + }, + }, + "opentelemetry/java": Object { + "agent": Object { + "activation_method": Array [ + "k8s-attach", + ], + "version": Array [ + "1.38.0", + ], + }, + "service": Object { + "framework": Object { + "composite": Array [ + "Spring Web MVC/1.10.1", + ], + "name": Array [ + "Spring Web MVC", + ], + "version": Array [ + "6.1.11", + ], + }, + "language": Object { + "composite": Array [ + "Java/17.0.12", + ], + "name": Array [ + "Java", + ], + "version": Array [ + "17.0.12", + ], + }, + "runtime": Object { + "composite": Array [ + "Java/17.0.12", + ], + "name": Array [ + "Java", + ], + "version": Array [ + "17.0.12", + ], + }, + }, + }, + "opentelemetry/java/elastic": Object { + "agent": Object { + "activation_method": Array [ + "k8s-attach", + ], + "version": Array [ + "1.38.0", + ], + }, + "service": Object { + "framework": Object { + "composite": Array [ + "Spring Web MVC/1.10.1", + ], + "name": Array [ + "Spring Web MVC", + ], + "version": Array [ + "6.1.11", + ], + }, + "language": Object { + "composite": Array [ + "Java/17.0.12", + ], + "name": Array [ + "Java", + ], + "version": Array [ + "17.0.12", + ], + }, + "runtime": Object { + "composite": Array [ + "Java/17.0.12", + ], + "name": Array [ + "Java", + ], + "version": Array [ + "17.0.12", + ], + }, + }, + }, + "opentelemetry/nodejs": Object { + "agent": Object { + "activation_method": Array [], + "version": Array [], + }, + "service": Object { + "framework": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "language": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "runtime": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + }, + }, + "opentelemetry/php": Object { + "agent": Object { + "activation_method": Array [], + "version": Array [], + }, + "service": Object { + "framework": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "language": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "runtime": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + }, + }, + "opentelemetry/python": Object { + "agent": Object { + "activation_method": Array [], + "version": Array [], + }, + "service": Object { + "framework": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "language": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "runtime": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + }, + }, + "opentelemetry/ruby": Object { + "agent": Object { + "activation_method": Array [], + "version": Array [], + }, + "service": Object { + "framework": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "language": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "runtime": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + }, + }, + "opentelemetry/rust": Object { + "agent": Object { + "activation_method": Array [], + "version": Array [], + }, + "service": Object { + "framework": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "language": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "runtime": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + }, + }, + "opentelemetry/swift": Object { + "agent": Object { + "activation_method": Array [], + "version": Array [], + }, + "service": Object { + "framework": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "language": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "runtime": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + }, + }, + "opentelemetry/webjs": Object { + "agent": Object { + "activation_method": Array [], + "version": Array [], + }, + "service": Object { + "framework": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "language": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "runtime": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + }, + }, + "otlp": Object { + "agent": Object { + "activation_method": Array [ + "k8s-attach", + ], + "version": Array [ + "1.38.0", + ], + }, + "service": Object { + "framework": Object { + "composite": Array [ + "Spring Web MVC/1.10.1", + ], + "name": Array [ + "Spring Web MVC", + ], + "version": Array [ + "6.1.11", + ], + }, + "language": Object { + "composite": Array [ + "Java/17.0.12", + ], + "name": Array [ + "Java", + ], + "version": Array [ + "17.0.12", + ], + }, + "runtime": Object { + "composite": Array [ + "Java/17.0.12", + ], + "name": Array [ + "Java", + ], + "version": Array [ + "17.0.12", + ], + }, + }, + }, + "otlp/android": Object { + "agent": Object { + "activation_method": Array [], + "version": Array [], + }, + "service": Object { + "framework": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "language": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "runtime": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + }, + }, + "otlp/cpp": Object { + "agent": Object { + "activation_method": Array [], + "version": Array [], + }, + "service": Object { + "framework": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "language": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "runtime": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + }, + }, + "otlp/dotnet": Object { + "agent": Object { + "activation_method": Array [], + "version": Array [], + }, + "service": Object { + "framework": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "language": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "runtime": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + }, + }, + "otlp/erlang": Object { + "agent": Object { + "activation_method": Array [], + "version": Array [], + }, + "service": Object { + "framework": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "language": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "runtime": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + }, + }, + "otlp/go": Object { + "agent": Object { + "activation_method": Array [], + "version": Array [], + }, + "service": Object { + "framework": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "language": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "runtime": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + }, + }, + "otlp/java": Object { + "agent": Object { + "activation_method": Array [ + "k8s-attach", + ], + "version": Array [ + "1.38.0", + ], + }, + "service": Object { + "framework": Object { + "composite": Array [ + "Spring Web MVC/1.10.1", + ], + "name": Array [ + "Spring Web MVC", + ], + "version": Array [ + "6.1.11", + ], + }, + "language": Object { + "composite": Array [ + "Java/17.0.12", + ], + "name": Array [ + "Java", + ], + "version": Array [ + "17.0.12", + ], + }, + "runtime": Object { + "composite": Array [ + "Java/17.0.12", + ], + "name": Array [ + "Java", + ], + "version": Array [ + "17.0.12", + ], + }, + }, + }, + "otlp/java/elastic": Object { + "agent": Object { + "activation_method": Array [ + "k8s-attach", + ], + "version": Array [ + "1.38.0", + ], + }, + "service": Object { + "framework": Object { + "composite": Array [ + "Spring Web MVC/1.10.1", + ], + "name": Array [ + "Spring Web MVC", + ], + "version": Array [ + "6.1.11", + ], + }, + "language": Object { + "composite": Array [ + "Java/17.0.12", + ], + "name": Array [ + "Java", + ], + "version": Array [ + "17.0.12", + ], + }, + "runtime": Object { + "composite": Array [ + "Java/17.0.12", + ], + "name": Array [ + "Java", + ], + "version": Array [ + "17.0.12", + ], + }, + }, + }, + "otlp/nodejs": Object { + "agent": Object { + "activation_method": Array [], + "version": Array [], + }, + "service": Object { + "framework": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "language": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "runtime": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + }, + }, + "otlp/php": Object { + "agent": Object { + "activation_method": Array [], + "version": Array [], + }, + "service": Object { + "framework": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "language": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "runtime": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + }, + }, + "otlp/python": Object { + "agent": Object { + "activation_method": Array [], + "version": Array [], + }, + "service": Object { + "framework": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "language": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "runtime": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + }, + }, + "otlp/ruby": Object { + "agent": Object { + "activation_method": Array [], + "version": Array [], + }, + "service": Object { + "framework": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "language": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "runtime": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + }, + }, + "otlp/rust": Object { + "agent": Object { + "activation_method": Array [], + "version": Array [], + }, + "service": Object { + "framework": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "language": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "runtime": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + }, + }, + "otlp/swift": Object { + "agent": Object { + "activation_method": Array [], + "version": Array [], + }, + "service": Object { + "framework": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "language": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "runtime": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + }, + }, + "otlp/webjs": Object { + "agent": Object { + "activation_method": Array [], + "version": Array [], + }, + "service": Object { + "framework": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "language": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "runtime": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + }, + }, + "php": Object { + "agent": Object { + "activation_method": Array [], + "version": Array [], + }, + "service": Object { + "framework": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "language": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "runtime": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + }, + }, + "python": Object { + "agent": Object { + "activation_method": Array [], + "version": Array [], + }, + "service": Object { + "framework": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "language": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "runtime": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + }, + }, + "ruby": Object { + "agent": Object { + "activation_method": Array [], + "version": Array [], + }, + "service": Object { + "framework": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "language": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "runtime": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + }, + }, + "rum-js": Object { + "agent": Object { + "activation_method": Array [], + "version": Array [], + }, + "service": Object { + "framework": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "language": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + "runtime": Object { + "composite": Array [], + "name": Array [], + "version": Array [], + }, + }, + }, + }, +} +`; + exports[`data telemetry collection tasks indices_stats returns a map of index stats 1`] = ` Object { "indices": Object { @@ -615,3 +1742,54 @@ Object { }, } `; + +exports[`data telemetry collection tasks services should return services per agent name 1`] = ` +Object { + "has_any_services": true, + "has_any_services_per_official_agent": true, + "services_per_agent": Object { + "android/java": 0, + "dotnet": 0, + "go": 0, + "iOS/swift": 0, + "ios/swift": 0, + "java": 10, + "js-base": 0, + "nodejs": 0, + "opentelemetry": 4, + "opentelemetry/android": 0, + "opentelemetry/cpp": 0, + "opentelemetry/dotnet": 0, + "opentelemetry/erlang": 0, + "opentelemetry/go": 0, + "opentelemetry/java": 5, + "opentelemetry/java/elastic": 6, + "opentelemetry/nodejs": 0, + "opentelemetry/php": 0, + "opentelemetry/python": 0, + "opentelemetry/ruby": 0, + "opentelemetry/rust": 0, + "opentelemetry/swift": 0, + "opentelemetry/webjs": 0, + "otlp": 1, + "otlp/android": 0, + "otlp/cpp": 0, + "otlp/dotnet": 0, + "otlp/erlang": 0, + "otlp/go": 0, + "otlp/java": 2, + "otlp/java/elastic": 3, + "otlp/nodejs": 0, + "otlp/php": 0, + "otlp/python": 0, + "otlp/ruby": 0, + "otlp/rust": 0, + "otlp/swift": 0, + "otlp/webjs": 0, + "php": 0, + "python": 0, + "ruby": 0, + "rum-js": 0, + }, +} +`; diff --git a/x-pack/plugins/observability_solution/apm/server/lib/apm_telemetry/collect_data_telemetry/tasks.test.ts b/x-pack/plugins/observability_solution/apm/server/lib/apm_telemetry/collect_data_telemetry/tasks.test.ts index a2b6809f855e7..7bba841a8dee5 100644 --- a/x-pack/plugins/observability_solution/apm/server/lib/apm_telemetry/collect_data_telemetry/tasks.test.ts +++ b/x-pack/plugins/observability_solution/apm/server/lib/apm_telemetry/collect_data_telemetry/tasks.test.ts @@ -873,4 +873,150 @@ describe('data telemetry collection tasks', () => { }); }); }); + + describe('services', () => { + const task = tasks.find((t) => t.name === 'services'); + + it('should return services per agent name', async () => { + const search = jest.fn().mockImplementation((params: any) => { + const filter = params.body.query.bool.filter[0]; + const queryKnownAgentNames = filter.term; + const queryOtelAgentNames = filter.prefix; + const queryServices = filter.exists; + + if (queryKnownAgentNames && queryKnownAgentNames['agent.name'] === 'java') { + return Promise.resolve({ + aggregations: { + services: { + value: 10, + }, + }, + }); + } else if (queryOtelAgentNames) { + return Promise.resolve({ + aggregations: { + agent_name: { + buckets: [ + { + key: 'otlp', + services: { value: 1 }, + }, + { + key: 'otlp/java', + services: { value: 2 }, + }, + { + key: 'otlp/java/elastic', + services: { value: 3 }, + }, + { + key: 'opentelemetry', + services: { value: 4 }, + }, + { + key: 'opentelemetry/java', + services: { value: 5 }, + }, + { + key: 'opentelemetry/java/elastic', + services: { value: 6 }, + }, + ], + }, + }, + }); + } else if (queryServices) { + return Promise.resolve({ hits: { total: { value: 100 } } }); + } else { + return Promise.resolve({ aggregations: { services: { value: 0 } } }); + } + }); + + expect( + await task?.executor({ indices, telemetryClient: { search } } as any) + ).toMatchSnapshot(); + }); + }); + + describe('agents', () => { + const task = tasks.find((t) => t.name === 'agents'); + + it('should return agent data per agent name', async () => { + const search = jest.fn().mockImplementation((params: any) => { + const agentDataMock = { + 'agent.activation_method': { buckets: [{ key: 'k8s-attach' }] }, + 'agent.version': { buckets: [{ key: '1.38.0' }] }, + 'service.framework.name': { + buckets: [ + { + key: 'Spring Web MVC', + 'service.framework.version': { buckets: [{ key: '1.10.1' }] }, + }, + ], + }, + 'service.framework.version': { buckets: [{ key: '6.1.11', doc_count: 111 }] }, + 'service.language.name': { + buckets: [ + { + key: 'Java', + 'service.language.version': { buckets: [{ key: '17.0.12' }] }, + }, + ], + }, + 'service.language.version': { buckets: [{ key: '17.0.12', doc_count: 112 }] }, + 'service.runtime.name': { + buckets: [ + { + key: 'Java', + 'service.runtime.version': { buckets: [{ key: '17.0.12', doc_count: 113 }] }, + }, + ], + }, + 'service.runtime.version': { buckets: [{ key: '17.0.12', doc_count: 113 }] }, + }; + + const filter = params.body.query.bool.filter[0]; + const queryKnownAgentNames = filter.term; + const queryOtelAgentNames = filter.prefix; + + if (queryKnownAgentNames && queryKnownAgentNames['agent.name'] === 'java') { + return Promise.resolve({ + aggregations: agentDataMock, + }); + } else if (queryOtelAgentNames) { + return Promise.resolve({ + aggregations: { + agent_name: { + buckets: [ + { key: 'otlp', ...agentDataMock }, + { key: 'otlp/java', ...agentDataMock }, + { key: 'otlp/java/elastic', ...agentDataMock }, + { key: 'opentelemetry', ...agentDataMock }, + { key: 'opentelemetry/java', ...agentDataMock }, + { key: 'opentelemetry/java/elastic', ...agentDataMock }, + ], + }, + }, + }); + } else { + return Promise.resolve({ + aggregations: { + 'agent.activation_method': { buckets: [] }, + 'agent.version': { buckets: [] }, + 'service.framework.name': { buckets: [] }, + 'service.framework.version': { buckets: [] }, + 'service.language.name': { buckets: [] }, + 'service.language.version': { buckets: [] }, + 'service.runtime.name': { buckets: [] }, + 'service.runtime.version': { buckets: [] }, + }, + }); + } + }); + + expect( + await task?.executor({ indices, telemetryClient: { search } } as any) + ).toMatchSnapshot(); + }); + }); }); diff --git a/x-pack/plugins/observability_solution/apm/server/lib/apm_telemetry/collect_data_telemetry/tasks.ts b/x-pack/plugins/observability_solution/apm/server/lib/apm_telemetry/collect_data_telemetry/tasks.ts index 1347cbb4e3641..1ab2a6d44969b 100644 --- a/x-pack/plugins/observability_solution/apm/server/lib/apm_telemetry/collect_data_telemetry/tasks.ts +++ b/x-pack/plugins/observability_solution/apm/server/lib/apm_telemetry/collect_data_telemetry/tasks.ts @@ -8,11 +8,17 @@ import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import { getKqlFieldNamesFromExpression } from '@kbn/es-query'; import { ProcessorEvent } from '@kbn/observability-plugin/common'; import { createHash } from 'crypto'; -import { flatten, merge, pickBy, sortBy, sum, uniq } from 'lodash'; +import { flatten, merge, pickBy, sortBy, sum, uniq, without } from 'lodash'; import { SavedObjectsClient } from '@kbn/core/server'; import type { APMIndices } from '@kbn/apm-data-access-plugin/server'; +import { + AGENT_NAMES, + OPEN_TELEMETRY_AGENT_NAMES, + OPEN_TELEMETRY_BASE_AGENT_NAMES, + RUM_AGENT_NAMES, + type OpenTelemetryAgentName, +} from '@kbn/elastic-agent-utils/src/agent_names'; import { unflattenKnownApmEventFields } from '@kbn/apm-data-access-plugin/server/utils'; -import { AGENT_NAMES, RUM_AGENT_NAMES } from '../../../../common/agent_name'; import { AGENT_ACTIVATION_METHOD, AGENT_NAME, @@ -77,6 +83,7 @@ import { type ISavedObjectsClient = Pick; const TIME_RANGES = ['1d', 'all'] as const; +const AGENT_NAMES_WITHOUT_OTEL = without(AGENT_NAMES, ...OPEN_TELEMETRY_AGENT_NAMES); type TimeRange = (typeof TIME_RANGES)[number]; const range1d = { range: { '@timestamp': { gte: 'now-1d' } } }; @@ -608,42 +615,97 @@ export const tasks: TelemetryTask[] = [ { name: 'services', executor: async ({ indices, telemetryClient }) => { - const servicesPerAgent = await AGENT_NAMES.reduce((prevJob, agentName) => { - return prevJob.then(async (data) => { - const response = await telemetryClient.search({ - index: [indices.error, indices.span, indices.metric, indices.transaction], - body: { - size: 0, - track_total_hits: false, - timeout, - query: { - bool: { - filter: [ - { - term: { - [AGENT_NAME]: agentName, + const servicesPerAgentExcludingOtel = await AGENT_NAMES_WITHOUT_OTEL.reduce( + (prevJob, agentName) => { + return prevJob.then(async (data) => { + const response = await telemetryClient.search({ + index: [indices.error, indices.span, indices.metric, indices.transaction], + body: { + size: 0, + track_total_hits: false, + timeout, + query: { + bool: { + filter: [ + { + term: { + [AGENT_NAME]: agentName, + }, }, + range1d, + ], + }, + }, + aggs: { + services: { + cardinality: { + field: SERVICE_NAME, }, - range1d, - ], + }, }, }, - aggs: { - services: { - cardinality: { - field: SERVICE_NAME, + }); + + data[agentName] = response.aggregations?.services.value || 0; + return data; + }); + }, + Promise.resolve({} as Record) + ); + + const initOtelAgents = OPEN_TELEMETRY_AGENT_NAMES.reduce((acc, agent) => { + acc[agent] = 0; + return acc; + }, {} as Record); + + const servicesPerOtelAgents = await OPEN_TELEMETRY_BASE_AGENT_NAMES.reduce( + (prevJob, agentName) => { + return prevJob.then(async (data) => { + const response = await telemetryClient.search({ + index: [indices.error, indices.span, indices.metric, indices.transaction], + body: { + size: 0, + track_total_hits: false, + timeout, + query: { + bool: { + filter: [{ prefix: { [AGENT_NAME]: agentName } }, range1d], + }, + }, + aggs: { + agent_name: { + terms: { + field: AGENT_NAME, + size: 1000, + }, + aggs: { + services: { + cardinality: { + field: SERVICE_NAME, + }, + }, + }, }, }, }, - }, - }); + }); - return { - ...data, - [agentName]: response.aggregations?.services.value || 0, - }; - }); - }, Promise.resolve({} as Record)); + const aggregatedServicesPerAgents = response.aggregations?.agent_name.buckets.reduce( + (acc, agent) => { + acc[agent.key as OpenTelemetryAgentName] = agent.services.value || 0; + return acc; + }, + initOtelAgents + ); + + return { + ...data, + ...aggregatedServicesPerAgents, + }; + }); + }, + Promise.resolve(initOtelAgents) + ); const services = await telemetryClient.search({ index: [indices.error, indices.span, indices.metric, indices.transaction], @@ -667,10 +729,15 @@ export const tasks: TelemetryTask[] = [ }, }); + const servicesPerAgents: Record = { + ...servicesPerAgentExcludingOtel, + ...servicesPerOtelAgents, + }; + return { - has_any_services_per_official_agent: sum(Object.values(servicesPerAgent)) > 0, + has_any_services_per_official_agent: sum(Object.values(servicesPerAgents)) > 0, has_any_services: services?.hits?.total?.value > 0, - services_per_agent: servicesPerAgent, + services_per_agent: servicesPerAgents, }; }, }, @@ -900,113 +967,112 @@ export const tasks: TelemetryTask[] = [ name: 'agents', executor: async ({ indices, telemetryClient }) => { const size = 3; - - const agentData = await AGENT_NAMES.reduce(async (prevJob, agentName) => { - const data = await prevJob; - - const response = await telemetryClient.search({ - index: [indices.error, indices.metric, indices.transaction], - body: { - track_total_hits: false, - size: 0, - timeout, - query: { - bool: { - filter: [{ term: { [AGENT_NAME]: agentName } }, range1d], + const toComposite = (outerKey: string | number, innerKey: string | number) => + `${outerKey}/${innerKey}`; + const agentNameAggs = { + [AGENT_ACTIVATION_METHOD]: { + terms: { + field: AGENT_ACTIVATION_METHOD, + size, + }, + }, + [AGENT_VERSION]: { + terms: { + field: AGENT_VERSION, + size, + }, + }, + [SERVICE_FRAMEWORK_NAME]: { + terms: { + field: SERVICE_FRAMEWORK_NAME, + size, + }, + aggs: { + [SERVICE_FRAMEWORK_VERSION]: { + terms: { + field: SERVICE_FRAMEWORK_VERSION, + size, }, }, - sort: { - '@timestamp': 'desc', - }, - aggs: { - [AGENT_ACTIVATION_METHOD]: { - terms: { - field: AGENT_ACTIVATION_METHOD, - size, - }, - }, - [AGENT_VERSION]: { - terms: { - field: AGENT_VERSION, - size, - }, - }, - [SERVICE_FRAMEWORK_NAME]: { - terms: { - field: SERVICE_FRAMEWORK_NAME, - size, - }, - aggs: { - [SERVICE_FRAMEWORK_VERSION]: { - terms: { - field: SERVICE_FRAMEWORK_VERSION, - size, - }, - }, - }, - }, - [SERVICE_FRAMEWORK_VERSION]: { - terms: { - field: SERVICE_FRAMEWORK_VERSION, - size, - }, - }, - [SERVICE_LANGUAGE_NAME]: { - terms: { - field: SERVICE_LANGUAGE_NAME, - size, - }, - aggs: { - [SERVICE_LANGUAGE_VERSION]: { - terms: { - field: SERVICE_LANGUAGE_VERSION, - size, - }, - }, - }, + }, + }, + [SERVICE_FRAMEWORK_VERSION]: { + terms: { + field: SERVICE_FRAMEWORK_VERSION, + size, + }, + }, + [SERVICE_LANGUAGE_NAME]: { + terms: { + field: SERVICE_LANGUAGE_NAME, + size, + }, + aggs: { + [SERVICE_LANGUAGE_VERSION]: { + terms: { + field: SERVICE_LANGUAGE_VERSION, + size, }, - [SERVICE_LANGUAGE_VERSION]: { - terms: { - field: SERVICE_LANGUAGE_VERSION, - size, - }, + }, + }, + }, + [SERVICE_LANGUAGE_VERSION]: { + terms: { + field: SERVICE_LANGUAGE_VERSION, + size, + }, + }, + [SERVICE_RUNTIME_NAME]: { + terms: { + field: SERVICE_RUNTIME_NAME, + size, + }, + aggs: { + [SERVICE_RUNTIME_VERSION]: { + terms: { + field: SERVICE_RUNTIME_VERSION, + size, }, - [SERVICE_RUNTIME_NAME]: { - terms: { - field: SERVICE_RUNTIME_NAME, - size, - }, - aggs: { - [SERVICE_RUNTIME_VERSION]: { - terms: { - field: SERVICE_RUNTIME_VERSION, - size, - }, - }, + }, + }, + }, + [SERVICE_RUNTIME_VERSION]: { + terms: { + field: SERVICE_RUNTIME_VERSION, + size, + }, + }, + }; + + const agentDataWithoutOtel = await AGENT_NAMES_WITHOUT_OTEL.reduce( + async (prevJob, agentName) => { + const data = await prevJob; + + const response = await telemetryClient.search({ + index: [indices.error, indices.metric, indices.transaction], + body: { + track_total_hits: false, + size: 0, + timeout, + query: { + bool: { + filter: [{ term: { [AGENT_NAME]: agentName } }, range1d], }, }, - [SERVICE_RUNTIME_VERSION]: { - terms: { - field: SERVICE_RUNTIME_VERSION, - size, - }, + sort: { + '@timestamp': 'desc', }, + aggs: agentNameAggs, }, - }, - }); - - const { aggregations } = response; + }); - if (!aggregations) { - return data; - } + const { aggregations } = response; - const toComposite = (outerKey: string | number, innerKey: string | number) => - `${outerKey}/${innerKey}`; + if (!aggregations) { + return data; + } - return { - ...data, - [agentName]: { + data[agentName] = { agent: { activation_method: aggregations[AGENT_ACTIVATION_METHOD].buckets .map((bucket) => bucket.key as string) @@ -1081,12 +1147,167 @@ export const tasks: TelemetryTask[] = [ .map((composite) => composite.name), }, }, - }, - }; - }, Promise.resolve({} as APMTelemetry['agents'])); + }; + return data; + }, + Promise.resolve({} as NonNullable) + ); + + const agentDataWithOtel = await OPEN_TELEMETRY_BASE_AGENT_NAMES.reduce( + async (prevJob, agentName) => { + const data = await prevJob; + + const response = await telemetryClient.search({ + index: [indices.error, indices.metric, indices.transaction], + body: { + track_total_hits: false, + size: 0, + timeout, + query: { + bool: { + filter: [{ prefix: { [AGENT_NAME]: agentName } }, range1d], + }, + }, + sort: { + '@timestamp': 'desc', + }, + aggs: { + agent_name: { + terms: { + field: AGENT_NAME, + size: 1000, + }, + aggs: agentNameAggs, + }, + }, + }, + }); + + const { aggregations } = response; + + if (!aggregations) { + return data; + } + + const initAgentData = OPEN_TELEMETRY_AGENT_NAMES.reduce((acc, agent) => { + acc[agent] = { + agent: { + activation_method: [], + version: [], + }, + service: { + framework: { + name: [], + version: [], + composite: [], + }, + language: { + name: [], + version: [], + composite: [], + }, + runtime: { + name: [], + version: [], + composite: [], + }, + }, + }; + return acc; + }, {} as NonNullable); + + const agentData = aggregations?.agent_name.buckets.reduce((acc, agentNamesAggs) => { + acc[agentNamesAggs.key as OpenTelemetryAgentName] = { + agent: { + activation_method: agentNamesAggs[AGENT_ACTIVATION_METHOD].buckets + .map((bucket) => bucket.key as string) + .slice(0, size), + version: agentNamesAggs[AGENT_VERSION].buckets.map( + (bucket) => bucket.key as string + ), + }, + service: { + framework: { + name: agentNamesAggs[SERVICE_FRAMEWORK_NAME].buckets + .map((bucket) => bucket.key as string) + .slice(0, size), + version: agentNamesAggs[SERVICE_FRAMEWORK_VERSION].buckets + .map((bucket) => bucket.key as string) + .slice(0, size), + composite: sortBy( + flatten( + agentNamesAggs[SERVICE_FRAMEWORK_NAME].buckets.map((bucket) => + bucket[SERVICE_FRAMEWORK_VERSION].buckets.map((versionBucket) => ({ + doc_count: versionBucket.doc_count, + name: toComposite(bucket.key, versionBucket.key), + })) + ) + ), + 'doc_count' + ) + .reverse() + .slice(0, size) + .map((composite) => composite.name), + }, + language: { + name: agentNamesAggs[SERVICE_LANGUAGE_NAME].buckets + .map((bucket) => bucket.key as string) + .slice(0, size), + version: agentNamesAggs[SERVICE_LANGUAGE_VERSION].buckets + .map((bucket) => bucket.key as string) + .slice(0, size), + composite: sortBy( + flatten( + agentNamesAggs[SERVICE_LANGUAGE_NAME].buckets.map((bucket) => + bucket[SERVICE_LANGUAGE_VERSION].buckets.map((versionBucket) => ({ + doc_count: versionBucket.doc_count, + name: toComposite(bucket.key, versionBucket.key), + })) + ) + ), + 'doc_count' + ) + .reverse() + .slice(0, size) + .map((composite) => composite.name), + }, + runtime: { + name: agentNamesAggs[SERVICE_RUNTIME_NAME].buckets + .map((bucket) => bucket.key as string) + .slice(0, size), + version: agentNamesAggs[SERVICE_RUNTIME_VERSION].buckets + .map((bucket) => bucket.key as string) + .slice(0, size), + composite: sortBy( + flatten( + agentNamesAggs[SERVICE_RUNTIME_NAME].buckets.map((bucket) => + bucket[SERVICE_RUNTIME_VERSION].buckets.map((versionBucket) => ({ + doc_count: versionBucket.doc_count, + name: toComposite(bucket.key, versionBucket.key), + })) + ) + ), + 'doc_count' + ) + .reverse() + .slice(0, size) + .map((composite) => composite.name), + }, + }, + }; + return acc; + }, initAgentData); + + return { + ...data, + ...agentData, + }; + }, + Promise.resolve({} as APMTelemetry['agents']) + ); return { - agents: agentData, + agents: { ...agentDataWithoutOtel, ...agentDataWithOtel }, }; }, }, diff --git a/x-pack/plugins/observability_solution/apm/server/lib/apm_telemetry/schema.ts b/x-pack/plugins/observability_solution/apm/server/lib/apm_telemetry/schema.ts index 917237963ef37..d351cc40ae721 100644 --- a/x-pack/plugins/observability_solution/apm/server/lib/apm_telemetry/schema.ts +++ b/x-pack/plugins/observability_solution/apm/server/lib/apm_telemetry/schema.ts @@ -7,7 +7,7 @@ import { MakeSchemaFrom } from '@kbn/usage-collection-plugin/server'; import { AggregatedTransactionsCounts, APMUsage, APMPerService, DataStreamCombined } from './types'; -import { ElasticAgentName } from '../../../typings/es_schemas/ui/fields/agent'; +import type { AgentName } from '../../../typings/es_schemas/ui/fields/agent'; const aggregatedTransactionCountSchema: MakeSchemaFrom = { expected_metric_document_count: { @@ -63,7 +63,7 @@ const dataStreamCombinedSchema: MakeSchemaFrom = { }, }; -const agentSchema: MakeSchemaFrom['agents'][ElasticAgentName] = { +const agentSchema: MakeSchemaFrom['agents'][AgentName] = { agent: { version: { type: 'array', @@ -460,6 +460,35 @@ const apmPerAgentSchema: Pick, 'services_per_agen python: agentSchema, ruby: agentSchema, 'rum-js': agentSchema, + otlp: agentSchema, + opentelemetry: agentSchema, + 'opentelemetry/cpp': agentSchema, + 'opentelemetry/dotnet': agentSchema, + 'opentelemetry/erlang': agentSchema, + 'opentelemetry/go': agentSchema, + 'opentelemetry/java': agentSchema, + 'opentelemetry/nodejs': agentSchema, + 'opentelemetry/php': agentSchema, + 'opentelemetry/python': agentSchema, + 'opentelemetry/ruby': agentSchema, + 'opentelemetry/rust': agentSchema, + 'opentelemetry/swift': agentSchema, + 'opentelemetry/android': agentSchema, + 'opentelemetry/webjs': agentSchema, + 'otlp/cpp': agentSchema, + 'otlp/dotnet': agentSchema, + 'otlp/erlang': agentSchema, + 'otlp/go': agentSchema, + 'otlp/java': agentSchema, + 'otlp/nodejs': agentSchema, + 'otlp/php': agentSchema, + 'otlp/python': agentSchema, + 'otlp/ruby': agentSchema, + 'otlp/rust': agentSchema, + 'otlp/swift': agentSchema, + 'otlp/android': agentSchema, + 'otlp/webjs': agentSchema, + 'ios/swift': agentSchema, }, }; diff --git a/x-pack/plugins/observability_solution/apm/server/lib/apm_telemetry/types.ts b/x-pack/plugins/observability_solution/apm/server/lib/apm_telemetry/types.ts index 7ae7c14c8c88e..757b8bad533ba 100644 --- a/x-pack/plugins/observability_solution/apm/server/lib/apm_telemetry/types.ts +++ b/x-pack/plugins/observability_solution/apm/server/lib/apm_telemetry/types.ts @@ -6,7 +6,7 @@ */ import { DeepPartial } from 'utility-types'; -import { AgentName, ElasticAgentName } from '@kbn/elastic-agent-utils'; +import type { AgentName } from '@kbn/elastic-agent-utils'; import { RollupInterval } from '../../../common/rollup'; export interface TimeframeMap { @@ -133,7 +133,7 @@ export interface APMUsage { }; }; agents: Record< - ElasticAgentName, + AgentName, { agent: { version: string[]; diff --git a/x-pack/plugins/telemetry_collection_xpack/schema/xpack_plugins.json b/x-pack/plugins/telemetry_collection_xpack/schema/xpack_plugins.json index 0e5d4156d9760..79f9a373a92ba 100644 --- a/x-pack/plugins/telemetry_collection_xpack/schema/xpack_plugins.json +++ b/x-pack/plugins/telemetry_collection_xpack/schema/xpack_plugins.json @@ -4441,6 +4441,3573 @@ } } } + }, + "otlp": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + } + }, + "activation_method": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + } + }, + "opentelemetry": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + } + }, + "activation_method": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + } + }, + "opentelemetry/cpp": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + } + }, + "activation_method": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + } + }, + "opentelemetry/dotnet": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + } + }, + "activation_method": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + } + }, + "opentelemetry/erlang": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + } + }, + "activation_method": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + } + }, + "opentelemetry/go": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + } + }, + "activation_method": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + } + }, + "opentelemetry/java": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + } + }, + "activation_method": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + } + }, + "opentelemetry/nodejs": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + } + }, + "activation_method": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + } + }, + "opentelemetry/php": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + } + }, + "activation_method": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + } + }, + "opentelemetry/python": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + } + }, + "activation_method": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + } + }, + "opentelemetry/ruby": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + } + }, + "activation_method": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + } + }, + "opentelemetry/rust": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + } + }, + "activation_method": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + } + }, + "opentelemetry/swift": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + } + }, + "activation_method": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + } + }, + "opentelemetry/android": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + } + }, + "activation_method": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + } + }, + "opentelemetry/webjs": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + } + }, + "activation_method": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + } + }, + "otlp/cpp": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + } + }, + "activation_method": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + } + }, + "otlp/dotnet": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + } + }, + "activation_method": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + } + }, + "otlp/erlang": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + } + }, + "activation_method": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + } + }, + "otlp/go": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + } + }, + "activation_method": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + } + }, + "otlp/java": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + } + }, + "activation_method": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + } + }, + "otlp/nodejs": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + } + }, + "activation_method": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + } + }, + "otlp/php": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + } + }, + "activation_method": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + } + }, + "otlp/python": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + } + }, + "activation_method": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + } + }, + "otlp/ruby": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + } + }, + "activation_method": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + } + }, + "otlp/rust": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + } + }, + "activation_method": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + } + }, + "otlp/swift": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + } + }, + "activation_method": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + } + }, + "otlp/android": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + } + }, + "activation_method": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + } + }, + "otlp/webjs": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + } + }, + "activation_method": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + } + }, + "ios/swift": { + "properties": { + "agent": { + "properties": { + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent versions within the last day" + } + } + }, + "activation_method": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 agent activation methods within the last day" + } + } + } + } + }, + "service": { + "properties": { + "framework": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service framework version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service framework and version sorted by doc count" + } + } + } + } + }, + "language": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service language version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service language name and version sorted by doc count." + } + } + } + } + }, + "runtime": { + "properties": { + "name": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime name within the last day" + } + } + }, + "version": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "An array of the top 3 service runtime version within the last day" + } + } + }, + "composite": { + "type": "array", + "items": { + "type": "keyword", + "_meta": { + "description": "Composite field containing service runtime name and version sorted by doc count." + } + } + } + } + } + } + } + } } } },