JSPM

@opentelemetry/resource-detector-aws

2.5.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 2926061
  • Score
    100M100P100Q227190F
  • License Apache-2.0

OpenTelemetry SDK resource detector for AWS

Package Exports

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@opentelemetry/resource-detector-aws) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    OpenTelemetry Resource Detector for AWS

    NPM Published Version Apache License

    component owners: @jj22ee

    Resource detector for Amazon Web Services.

    Status

    Maturity Component Owner Compatibility
    Stable @jj22ee API 1.0+
    SDK 1.0+

    Installation

    npm install --save @opentelemetry/resource-detector-aws

    Usage

    import { detectResources } from '@opentelemetry/resources';
    import { awsEc2Detector } from '@opentelemetry/resource-detector-aws'
    const resource = await detectResources({
       detectors: [awsEc2Detector],
    })
    
    const tracerProvider = new NodeTracerProvider({ resource });

    Available detectors

    This package uses @opentelemetry/semantic-conventions version 1.22+, which implements Semantic Convention Version 1.7.0

    AWS Beanstalk Detector

    Populates service for processes running on AWS Elastic Beanstalk

    Resource Attribute Description
    cloud.platform The cloud platform. In this context, it's always "aws_elastic_beanstalk"
    cloud.provider The cloud provider. In this context, it's always "aws"
    service.instance.id Value of deployment_id from config file environment.conf
    service.name The service name. In this context, it's always "aws_elastic_beanstalk"
    service.namespace Value of environment_name from config file environment.conf
    service.version Value of version_label from config file environment.conf

    AWS EC2 Detector

    Populates cloud and host for processes running on Amazon EC2, including abstractions such as ECS on EC2. Notably, it does not populate anything on AWS Fargate.

    Resource Attribute Description
    cloud.account.id Value of accountId from /latest/dynamic/instance-identity/document request
    cloud.availability_zone Value of availabilityZone from /latest/dynamic/instance-identity/document request
    cloud.platform The cloud platform. In this context, it's always "aws_ec2"
    cloud.provider The cloud provider. In this context, it's always "aws"
    cloud.region Value of region from /latest/dynamic/instance-identity/document request
    host.id Value of instanceId from /latest/dynamic/instance-identity/document request
    host.name Value of hostname from /latest/dynamic/instance-identity/document request
    host.type Value of instanceType from /latest/dynamic/instance-identity/document request

    AWS ECS Detector

    Populates container for containers running on Amazon ECS.

    Resource Attribute Description
    aws.ecs.container.arn Value of ContainerARN from the request to the metadata Uri. The Metadata Uri is stored on the Environment Variable ECS_CONTAINER_METADATA_URI_V4
    aws.ecs.cluster.arn Value in the format ${baseArn}:cluster/${cluster}, with baseArn and cluster from a ECS_CONTAINER_METADATA_URI_V4/task request, with values from TaskARN and Cluster respectively
    aws.ecs.launchtype Value of LaunchType from ECS_CONTAINER_METADATA_URI_V4/task request
    aws.ecs.task.arn Value of TaskARN from ECS_CONTAINER_METADATA_URI_V4/task request
    aws.ecs.task.family Value of Family from ECS_CONTAINER_METADATA_URI_V4/task request
    aws.ecs.task.revision Value of Revision from ECS_CONTAINER_METADATA_URI_V4/task request
    aws.log.group.arns Value on format arn:aws:logs:${logsRegion}:${awsAccount}:log-group:${logsGroupName}, with logsRegions and logsGroupName from logs metadata, values of awslogs-region and awslogs-group respectively, and awsAccount parsed value from the TaskARN. Logs metadata values come from LogOptions on ECS_CONTAINER_METADATA_URI_V4 request
    aws.log.group.names Value of awslogs-group from logs metadata. Logs metadata values come from LogOptions on ECS_CONTAINER_METADATA_URI_V4 request
    aws.log.stream.arns Value on format arn:aws:logs:${logsRegion}:${awsAccount}:log-group:${logsGroupName}:log-stream:${logsStreamName}, with logsRegions, logsGroupName and logsStreamName from logs metadata, values of awslogs-region, awslogs-group and awslogs-stream respectively, and awsAccount parsed value from the TaskARN
    aws.log.stream.names Value of awslogs-stream from logs metadata
    cloud.account.id Parsed value from the TaskARN
    cloud.availability_zone Value of AvailabilityZone from ECS_CONTAINER_METADATA_URI_V4/task request. This value is not available in all Fargate runtimes
    cloud.platform The cloud platform. In this context, it's always "aws_ecs"
    cloud.provider The cloud provider. In this context, it's always "aws"
    cloud.region Parsed value from the TaskARN
    cloud.resource_id Value of ContainerARN from ECS_CONTAINER_METADATA_URI_V4/task request
    container.id Value from file /proc/self/cgroup
    container.name The hostname of the operating system

    AWS EKS Detector

    Populates container and k8s.cluster_name for containers running on Amazon EKS. k8s.cluster_name is not always available depending on the configuration of CloudWatch monitoring for the EKS cluster.

    Resource Attribute Description
    cloud.platform The cloud platform. In this context, it's always "aws_eks"
    cloud.provider The cloud provider. In this context, it's always "aws"
    container.id Value from config file /proc/self/cgroup
    k8s.cluster.name Value of cluster.name from /api/v1/namespaces/amazon-cloudwatch/configmaps/cluster-info request

    AWS Lambda Detector

    Populates faas and cloud for functions running on AWS Lambda. faas.id is currently not populated as it is not provided by the runtime at startup.

    Resource Attribute Description
    cloud.platform The cloud platform. In this context, it's always "aws_lambda"
    cloud.provider The cloud provider. In this context, it's always "aws"
    cloud.region Value of Process Environment Variable AWS_REGION
    faas.name Value of Process Environment Variable AWS_LAMBDA_FUNCTION_NAME
    faas.version Value of Process Environment Variable AWS_LAMBDA_FUNCTION_VERSION

    License

    Apache 2.0 - See LICENSE for more information.