UNPKG

@instana/aws-fargate

Version:

Instana tracing and monitoring for Node.js based AWS Fargate tasks

49 lines (41 loc) 1.18 kB
/* * (c) Copyright IBM Corp. 2021 * (c) Copyright Instana Inc. and contributors 2020 */ 'use strict'; const { DataProcessor } = require('@instana/metrics-util'); const { convert, fullyQualifiedContainerId } = require('./containerUtil'); class InstrumentedEcsContainerProcessor extends DataProcessor { constructor(dataSource) { super('com.instana.plugin.aws.ecs.container'); this.addSource('snapshot', dataSource); } getEntityId() { if (this.entityId != null) { return this.entityId; } const rawData = this._compileRawData(); if ( !rawData.snapshot || !rawData.snapshot.Labels || !rawData.snapshot.Labels['com.amazonaws.ecs.task-arn'] || !rawData.snapshot.Name ) { return null; } this.entityId = fullyQualifiedContainerId( rawData.snapshot.Labels['com.amazonaws.ecs.task-arn'], rawData.snapshot.Name ); return this.entityId; } processData(rawDataPerSource) { const metadata = rawDataPerSource.snapshot; return { runtime: 'node', instrumented: true, ...convert(metadata) }; } } module.exports = exports = InstrumentedEcsContainerProcessor;