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." + } + } + } + } + } + } + } + } } } },