Giter Site home page Giter Site logo

apm-agent-nodejs-opentracing's Introduction

Elastic APM Node.js OpenTracing Bridge

Note: This OpenTracing Bridge is deprecated in favor of the Elastic APM Node.js OpenTelemetry Bridge

An OpenTracing bridge for the Elastic APM Node.js Agent.

npm Test status Build Status

Prerequisites

This module have elastic-apm-node as a peer dependency.

Version 2.10.0 or higher of the Elastic APM Agent is required in order to use this module.

Installation

npm install elastic-apm-node-opentracing --save

Usage

// Start the Elastic APM agent at the VERY top of the first file loaded
// in your app
const agent = require('elastic-apm-node').start()
const Tracer = require('elastic-apm-node-opentracing')

// Pass the Elastic APM agent as an argument to the OpenTracing tracer
const tracer = new Tracer(agent)

const span = tracer.startSpan('my-first-span')
// ... do some work ...
span.finish()

API

tracer = new Tracer(agent)

This module exposes a Tracer class which is OpenTracing compatible.

When instantiating the Tracer object, an instance of the Elastic APM Node.js Agent must be provided as its only argument.

For details about the tracer API, see the opentracing-javascript API docs.

License

Apache-2.0

apm-agent-nodejs-opentracing's People

Contributors

astorm avatar cachedout avatar kuisathaverat avatar liamsorsby avatar trentm avatar v1v avatar watson avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

apm-agent-nodejs-opentracing's Issues

Support for Service Maps and OpenRracing

While elastic-apm-node-opentracing can support distributing tracing, it looks like we do not support service maps. Quoting @JiaLiPassion

And I checked the source code of elastic-apm-node apm-agent-nodejs/http-shared.js at master · elastic/apm-agent-nodejs · GitHub , to display the link of the Service Map correctly, the destionationContext and the httpContext need to be set to the Span (There is no documentation about this part, so I am not sure how to set this destination context correctly to do my own instrument). And this destination context can be only set to the Span object, and a Span need to have an active transaction, so I need to create a Transaction and a Span to display the link. So I am using some hacking way to make the link being displayed.

The linked thread has some information on manually hacking in a transaction (or moving to OpenTelemetry) but if anyone from the community has a more elegant "span only" solution we'd welcome a discussion or PR/PRs on what it would take to make this happen

types.d.ts is not a module

Hi, using v2.0.1 in typescript (v4.4.3) project and getting .../node_modules/elastic-apm-node-opentracing/types.d.ts' is not a module error.

Our tsconfig file:

{
    "compilerOptions": {
      "allowJs": false,
      "allowSyntheticDefaultImports": true,
      "emitDecoratorMetadata": true,
      "esModuleInterop": true,
      "forceConsistentCasingInFileNames": true,
      "inlineSourceMap": true,
      "inlineSources": true,
      "isolatedModules": true,
      "module": "commonjs",
      "moduleResolution": "node",
      "noUncheckedIndexedAccess": true,
      "outDir": "./build",
      "resolveJsonModule": true,
      "rootDir": ".",
      "skipLibCheck": true,
      "strict": true,
      "target": "es2019",
      "experimentalDecorators": true
    },
    "exclude": ["node_modules", "tests"],
    "ts-node": {
      "files": true
    }
  }

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.