mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 17:28:26 -04:00
OpenTelemetry icons and data telemetry (#78499)
Add OpenTelemetry agent names and and icon. OpenTelemetry services will have the same icon as the corresponding APM services. Services that report "otlp" as their agent name use the OpenTelemetry icon. The OpenTelemetry agents are now collected in the data telemetry along with the other agent names. Change "ratio" in the telemetry to a float.
This commit is contained in:
parent
70d5157d62
commit
c2ef407d04
9 changed files with 875 additions and 34 deletions
|
@ -524,6 +524,710 @@ exports[`APM telemetry helpers getApmTelemetry generates a JSON object with the
|
|||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"otlp": {
|
||||
"properties": {
|
||||
"agent": {
|
||||
"properties": {
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
},
|
||||
"service": {
|
||||
"properties": {
|
||||
"framework": {
|
||||
"properties": {
|
||||
"composite": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"name": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
},
|
||||
"language": {
|
||||
"properties": {
|
||||
"composite": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"name": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
},
|
||||
"runtime": {
|
||||
"properties": {
|
||||
"composite": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"name": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"opentelemetry/cpp": {
|
||||
"properties": {
|
||||
"agent": {
|
||||
"properties": {
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
},
|
||||
"service": {
|
||||
"properties": {
|
||||
"framework": {
|
||||
"properties": {
|
||||
"composite": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"name": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
},
|
||||
"language": {
|
||||
"properties": {
|
||||
"composite": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"name": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
},
|
||||
"runtime": {
|
||||
"properties": {
|
||||
"composite": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"name": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"opentelemetry/dotnet": {
|
||||
"properties": {
|
||||
"agent": {
|
||||
"properties": {
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
},
|
||||
"service": {
|
||||
"properties": {
|
||||
"framework": {
|
||||
"properties": {
|
||||
"composite": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"name": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
},
|
||||
"language": {
|
||||
"properties": {
|
||||
"composite": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"name": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
},
|
||||
"runtime": {
|
||||
"properties": {
|
||||
"composite": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"name": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"opentelemetry/erlang": {
|
||||
"properties": {
|
||||
"agent": {
|
||||
"properties": {
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
},
|
||||
"service": {
|
||||
"properties": {
|
||||
"framework": {
|
||||
"properties": {
|
||||
"composite": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"name": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
},
|
||||
"language": {
|
||||
"properties": {
|
||||
"composite": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"name": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
},
|
||||
"runtime": {
|
||||
"properties": {
|
||||
"composite": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"name": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"opentelemetry/go": {
|
||||
"properties": {
|
||||
"agent": {
|
||||
"properties": {
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
},
|
||||
"service": {
|
||||
"properties": {
|
||||
"framework": {
|
||||
"properties": {
|
||||
"composite": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"name": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
},
|
||||
"language": {
|
||||
"properties": {
|
||||
"composite": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"name": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
},
|
||||
"runtime": {
|
||||
"properties": {
|
||||
"composite": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"name": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"opentelemetry/java": {
|
||||
"properties": {
|
||||
"agent": {
|
||||
"properties": {
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
},
|
||||
"service": {
|
||||
"properties": {
|
||||
"framework": {
|
||||
"properties": {
|
||||
"composite": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"name": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
},
|
||||
"language": {
|
||||
"properties": {
|
||||
"composite": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"name": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
},
|
||||
"runtime": {
|
||||
"properties": {
|
||||
"composite": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"name": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"opentelemetry/nodejs": {
|
||||
"properties": {
|
||||
"agent": {
|
||||
"properties": {
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
},
|
||||
"service": {
|
||||
"properties": {
|
||||
"framework": {
|
||||
"properties": {
|
||||
"composite": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"name": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
},
|
||||
"language": {
|
||||
"properties": {
|
||||
"composite": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"name": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
},
|
||||
"runtime": {
|
||||
"properties": {
|
||||
"composite": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"name": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"opentelemetry/php": {
|
||||
"properties": {
|
||||
"agent": {
|
||||
"properties": {
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
},
|
||||
"service": {
|
||||
"properties": {
|
||||
"framework": {
|
||||
"properties": {
|
||||
"composite": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"name": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
},
|
||||
"language": {
|
||||
"properties": {
|
||||
"composite": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"name": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
},
|
||||
"runtime": {
|
||||
"properties": {
|
||||
"composite": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"name": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"opentelemetry/python": {
|
||||
"properties": {
|
||||
"agent": {
|
||||
"properties": {
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
},
|
||||
"service": {
|
||||
"properties": {
|
||||
"framework": {
|
||||
"properties": {
|
||||
"composite": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"name": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
},
|
||||
"language": {
|
||||
"properties": {
|
||||
"composite": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"name": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
},
|
||||
"runtime": {
|
||||
"properties": {
|
||||
"composite": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"name": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"opentelemetry/ruby": {
|
||||
"properties": {
|
||||
"agent": {
|
||||
"properties": {
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
},
|
||||
"service": {
|
||||
"properties": {
|
||||
"framework": {
|
||||
"properties": {
|
||||
"composite": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"name": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
},
|
||||
"language": {
|
||||
"properties": {
|
||||
"composite": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"name": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
},
|
||||
"runtime": {
|
||||
"properties": {
|
||||
"composite": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"name": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"opentelemetry/webjs": {
|
||||
"properties": {
|
||||
"agent": {
|
||||
"properties": {
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
},
|
||||
"service": {
|
||||
"properties": {
|
||||
"framework": {
|
||||
"properties": {
|
||||
"composite": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"name": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
},
|
||||
"language": {
|
||||
"properties": {
|
||||
"composite": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"name": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
},
|
||||
"runtime": {
|
||||
"properties": {
|
||||
"composite": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"name": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
},
|
||||
"version": {
|
||||
"type": "keyword",
|
||||
"ignore_above": 1024
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -538,7 +1242,7 @@ exports[`APM telemetry helpers getApmTelemetry generates a JSON object with the
|
|||
"type": "long"
|
||||
},
|
||||
"ratio": {
|
||||
"type": "long"
|
||||
"type": "float"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -551,7 +1255,7 @@ exports[`APM telemetry helpers getApmTelemetry generates a JSON object with the
|
|||
"type": "long"
|
||||
},
|
||||
"ratio": {
|
||||
"type": "long"
|
||||
"type": "float"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -564,7 +1268,7 @@ exports[`APM telemetry helpers getApmTelemetry generates a JSON object with the
|
|||
"type": "long"
|
||||
},
|
||||
"ratio": {
|
||||
"type": "long"
|
||||
"type": "float"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -885,6 +1589,50 @@ exports[`APM telemetry helpers getApmTelemetry generates a JSON object with the
|
|||
"rum-js": {
|
||||
"type": "long",
|
||||
"null_value": 0
|
||||
},
|
||||
"otlp": {
|
||||
"type": "long",
|
||||
"null_value": 0
|
||||
},
|
||||
"opentelemetry/cpp": {
|
||||
"type": "long",
|
||||
"null_value": 0
|
||||
},
|
||||
"opentelemetry/dotnet": {
|
||||
"type": "long",
|
||||
"null_value": 0
|
||||
},
|
||||
"opentelemetry/erlang": {
|
||||
"type": "long",
|
||||
"null_value": 0
|
||||
},
|
||||
"opentelemetry/go": {
|
||||
"type": "long",
|
||||
"null_value": 0
|
||||
},
|
||||
"opentelemetry/java": {
|
||||
"type": "long",
|
||||
"null_value": 0
|
||||
},
|
||||
"opentelemetry/nodejs": {
|
||||
"type": "long",
|
||||
"null_value": 0
|
||||
},
|
||||
"opentelemetry/php": {
|
||||
"type": "long",
|
||||
"null_value": 0
|
||||
},
|
||||
"opentelemetry/python": {
|
||||
"type": "long",
|
||||
"null_value": 0
|
||||
},
|
||||
"opentelemetry/ruby": {
|
||||
"type": "long",
|
||||
"null_value": 0
|
||||
},
|
||||
"opentelemetry/webjs": {
|
||||
"type": "long",
|
||||
"null_value": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
@ -14,6 +14,20 @@ import { AgentName } from '../typings/es_schemas/ui/fields/agent';
|
|||
* AGENT_NAMES array.
|
||||
*/
|
||||
|
||||
export const OPEN_TELEMETRY_AGENT_NAMES: AgentName[] = [
|
||||
'otlp',
|
||||
'opentelemetry/cpp',
|
||||
'opentelemetry/dotnet',
|
||||
'opentelemetry/erlang',
|
||||
'opentelemetry/go',
|
||||
'opentelemetry/java',
|
||||
'opentelemetry/nodejs',
|
||||
'opentelemetry/php',
|
||||
'opentelemetry/python',
|
||||
'opentelemetry/ruby',
|
||||
'opentelemetry/webjs',
|
||||
];
|
||||
|
||||
export const AGENT_NAMES: AgentName[] = [
|
||||
'dotnet',
|
||||
'go',
|
||||
|
@ -23,18 +37,19 @@ export const AGENT_NAMES: AgentName[] = [
|
|||
'python',
|
||||
'ruby',
|
||||
'rum-js',
|
||||
...OPEN_TELEMETRY_AGENT_NAMES,
|
||||
];
|
||||
|
||||
export function isAgentName(agentName: string): agentName is AgentName {
|
||||
return AGENT_NAMES.includes(agentName as AgentName);
|
||||
}
|
||||
|
||||
export const RUM_AGENTS = ['js-base', 'rum-js'];
|
||||
export const RUM_AGENT_NAMES: AgentName[] = [
|
||||
'js-base',
|
||||
'rum-js',
|
||||
'opentelemetry/webjs',
|
||||
];
|
||||
|
||||
export function isRumAgentName(
|
||||
agentName?: string
|
||||
): agentName is 'js-base' | 'rum-js' {
|
||||
return RUM_AGENTS.includes(agentName!);
|
||||
): agentName is 'js-base' | 'rum-js' | 'opentelemetry/webjs' {
|
||||
return RUM_AGENT_NAMES.includes(agentName! as AgentName);
|
||||
}
|
||||
|
||||
export function isJavaAgentName(
|
||||
|
@ -42,16 +57,3 @@ export function isJavaAgentName(
|
|||
): agentName is 'java' {
|
||||
return agentName === 'java';
|
||||
}
|
||||
|
||||
/**
|
||||
* "Normalizes" and agent name by:
|
||||
*
|
||||
* * Converting to lowercase
|
||||
* * Converting "rum-js" to "js-base"
|
||||
*
|
||||
* This helps dealing with some older agent versions
|
||||
*/
|
||||
export function getNormalizedAgentName(agentName?: string) {
|
||||
const lowercased = agentName && agentName.toLowerCase();
|
||||
return isRumAgentName(lowercased) ? 'js-base' : lowercased;
|
||||
}
|
||||
|
|
|
@ -19,6 +19,10 @@ export function getApmTelemetryMapping() {
|
|||
ignore_above: 1024,
|
||||
};
|
||||
|
||||
const float = {
|
||||
type: 'float',
|
||||
};
|
||||
|
||||
const long = {
|
||||
type: 'long',
|
||||
};
|
||||
|
@ -78,7 +82,7 @@ export function getApmTelemetryMapping() {
|
|||
properties: {
|
||||
expected_metric_document_count: long,
|
||||
transaction_count: long,
|
||||
ratio: long,
|
||||
ratio: float,
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ import { Projection } from '../../../../common/projections';
|
|||
import { RumDashboard } from './RumDashboard';
|
||||
import { useUrlParams } from '../../../hooks/useUrlParams';
|
||||
import { useFetcher } from '../../../hooks/useFetcher';
|
||||
import { RUM_AGENTS } from '../../../../common/agent_name';
|
||||
import { RUM_AGENT_NAMES } from '../../../../common/agent_name';
|
||||
import { EnvironmentFilter } from '../../shared/EnvironmentFilter';
|
||||
import { URLFilter } from './URLFilter';
|
||||
import { LocalUIFilters } from '../../shared/LocalUIFilters';
|
||||
|
@ -48,7 +48,7 @@ export function RumOverview() {
|
|||
query: {
|
||||
start,
|
||||
end,
|
||||
uiFilters: JSON.stringify({ agentName: RUM_AGENTS }),
|
||||
uiFilters: JSON.stringify({ agentName: RUM_AGENT_NAMES }),
|
||||
},
|
||||
},
|
||||
});
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
/*
|
||||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
||||
* or more contributor license agreements. Licensed under the Elastic License;
|
||||
* you may not use this file except in compliance with the Elastic License.
|
||||
*/
|
||||
|
||||
import { getAgentIconKey } from './get_agent_icon';
|
||||
|
||||
const examples = {
|
||||
DotNet: 'dotnet', // Test for case sensitivity
|
||||
dotnet: 'dotnet',
|
||||
go: 'go',
|
||||
java: 'java',
|
||||
'js-base': 'rum',
|
||||
nodejs: 'nodejs',
|
||||
'opentelemetry/cpp': 'opentelemetry',
|
||||
'opentelemetry/dotnet': 'dotnet',
|
||||
'opentelemetry/erlang': 'opentelemetry',
|
||||
'opentelemetry/go': 'go',
|
||||
'opentelemetry/java': 'java',
|
||||
'opentelemetry/nodejs': 'nodejs',
|
||||
'opentelemetry/php': 'php',
|
||||
'opentelemetry/python': 'python',
|
||||
'opentelemetry/ruby': 'ruby',
|
||||
'opentelemetry/webjs': 'rum',
|
||||
otlp: 'opentelemetry',
|
||||
php: 'php',
|
||||
python: 'python',
|
||||
ruby: 'ruby',
|
||||
'rum-js': 'rum',
|
||||
'something else': undefined,
|
||||
};
|
||||
|
||||
describe('getAgentIconKey', () => {
|
||||
Object.entries(examples).forEach(([key, value]) => {
|
||||
describe(`with ${key}`, () => {
|
||||
it(`returns ${value}`, () => {
|
||||
expect(getAgentIconKey(key)).toEqual(value);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
|
@ -4,11 +4,16 @@
|
|||
* you may not use this file except in compliance with the Elastic License.
|
||||
*/
|
||||
|
||||
import { getNormalizedAgentName } from '../../../../common/agent_name';
|
||||
import {
|
||||
OPEN_TELEMETRY_AGENT_NAMES,
|
||||
RUM_AGENT_NAMES,
|
||||
} from '../../../../common/agent_name';
|
||||
import { AgentName } from '../../../../typings/es_schemas/ui/fields/agent';
|
||||
import dotNetIcon from './icons/dot-net.svg';
|
||||
import goIcon from './icons/go.svg';
|
||||
import javaIcon from './icons/java.svg';
|
||||
import nodeJsIcon from './icons/nodejs.svg';
|
||||
import openTelemetryIcon from './icons/opentelemetry.svg';
|
||||
import phpIcon from './icons/php.svg';
|
||||
import pythonIcon from './icons/python.svg';
|
||||
import rubyIcon from './icons/ruby.svg';
|
||||
|
@ -18,14 +23,42 @@ const agentIcons: { [key: string]: string } = {
|
|||
dotnet: dotNetIcon,
|
||||
go: goIcon,
|
||||
java: javaIcon,
|
||||
'js-base': rumJsIcon,
|
||||
nodejs: nodeJsIcon,
|
||||
opentelemetry: openTelemetryIcon,
|
||||
php: phpIcon,
|
||||
python: pythonIcon,
|
||||
ruby: rubyIcon,
|
||||
rum: rumJsIcon,
|
||||
};
|
||||
|
||||
export function getAgentIcon(agentName?: string) {
|
||||
const normalizedAgentName = getNormalizedAgentName(agentName);
|
||||
return normalizedAgentName && agentIcons[normalizedAgentName];
|
||||
// This only needs to be exported for testing purposes, since we stub the SVG
|
||||
// import values in test.
|
||||
export function getAgentIconKey(agentName: string) {
|
||||
// Ignore case
|
||||
const lowercasedAgentName = agentName.toLowerCase();
|
||||
|
||||
// RUM agent names
|
||||
if (RUM_AGENT_NAMES.includes(lowercasedAgentName as AgentName)) {
|
||||
return 'rum';
|
||||
}
|
||||
|
||||
// Remove "opentelemetry/" prefix
|
||||
const agentNameWithoutPrefix = lowercasedAgentName.replace(
|
||||
/^opentelemetry\//,
|
||||
''
|
||||
);
|
||||
|
||||
if (Object.keys(agentIcons).includes(agentNameWithoutPrefix)) {
|
||||
return agentNameWithoutPrefix;
|
||||
}
|
||||
|
||||
// OpenTelemetry-only agents
|
||||
if (OPEN_TELEMETRY_AGENT_NAMES.includes(lowercasedAgentName as AgentName)) {
|
||||
return 'opentelemetry';
|
||||
}
|
||||
}
|
||||
|
||||
export function getAgentIcon(agentName?: string) {
|
||||
const key = agentName && getAgentIconKey(agentName);
|
||||
return key && agentIcons[key];
|
||||
}
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
<svg width="32" height="32" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 1024.40 1024.40"><style>svg {enable-background:new 0 0 1000 1000}</style><path fill="#f5a800" d="M528.7 545.9c-42 42-42 110.1 0 152.1s110.1 42 152.1 0 42-110.1 0-152.1-110.1-42-152.1 0zm113.7 113.8c-20.8 20.8-54.5 20.8-75.3 0-20.8-20.8-20.8-54.5 0-75.3 20.8-20.8 54.5-20.8 75.3 0 20.8 20.7 20.8 54.5 0 75.3zm36.6-643l-65.9 65.9c-12.9 12.9-12.9 34.1 0 47l257.3 257.3c12.9 12.9 34.1 12.9 47 0l65.9-65.9c12.9-12.9 12.9-34.1 0-47L725.9 16.7c-12.9-12.9-34-12.9-46.9 0zM217.3 858.8c11.7-11.7 11.7-30.8 0-42.5l-33.5-33.5c-11.7-11.7-30.8-11.7-42.5 0L72.1 852l-.1.1-19-19c-10.5-10.5-27.6-10.5-38 0-10.5 10.5-10.5 27.6 0 38l114 114c10.5 10.5 27.6 10.5 38 0s10.5-27.6 0-38l-19-19 .1-.1 69.2-69.2z"/><path fill="#425cc7" d="M565.9 205.9L419.5 352.3c-13 13-13 34.4 0 47.4l90.4 90.4c63.9-46 153.5-40.3 211 17.2l73.2-73.2c13-13 13-34.4 0-47.4L613.3 205.9c-13-13.1-34.4-13.1-47.4 0zm-94 322.3l-53.4-53.4c-12.5-12.5-33-12.5-45.5 0L184.7 663.2c-12.5 12.5-12.5 33 0 45.5l106.7 106.7c12.5 12.5 33 12.5 45.5 0L458 694.1c-25.6-52.9-21-116.8 13.9-165.9z"/></svg>
|
After Width: | Height: | Size: 1.1 KiB |
|
@ -8,7 +8,7 @@ import { flatten, merge, sortBy, sum, pickBy } from 'lodash';
|
|||
import { AggregationOptionsByType } from '../../../../typings/elasticsearch/aggregations';
|
||||
import { ProcessorEvent } from '../../../../common/processor_event';
|
||||
import { TelemetryTask } from '.';
|
||||
import { AGENT_NAMES, RUM_AGENTS } from '../../../../common/agent_name';
|
||||
import { AGENT_NAMES, RUM_AGENT_NAMES } from '../../../../common/agent_name';
|
||||
import {
|
||||
AGENT_NAME,
|
||||
AGENT_VERSION,
|
||||
|
@ -1020,7 +1020,7 @@ export const tasks: TelemetryTask[] = [
|
|||
timeout,
|
||||
query: {
|
||||
bool: {
|
||||
filter: [range1d, { terms: { [AGENT_NAME]: RUM_AGENTS } }],
|
||||
filter: [range1d, { terms: { [AGENT_NAME]: RUM_AGENT_NAMES } }],
|
||||
},
|
||||
},
|
||||
aggs: {
|
||||
|
|
|
@ -16,7 +16,18 @@ export type AgentName =
|
|||
| 'nodejs'
|
||||
| 'python'
|
||||
| 'dotnet'
|
||||
| 'ruby';
|
||||
| 'ruby'
|
||||
| 'otlp'
|
||||
| 'opentelemetry/cpp'
|
||||
| 'opentelemetry/dotnet'
|
||||
| 'opentelemetry/erlang'
|
||||
| 'opentelemetry/go'
|
||||
| 'opentelemetry/java'
|
||||
| 'opentelemetry/nodejs'
|
||||
| 'opentelemetry/php'
|
||||
| 'opentelemetry/python'
|
||||
| 'opentelemetry/ruby'
|
||||
| 'opentelemetry/webjs';
|
||||
|
||||
export interface Agent {
|
||||
ephemeral_id?: string;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue