JSPM

  • Created
  • Published
  • Downloads 53704
  • Score
    100M100P100Q166808F
  • License MIT

A low-level HTTP client for communicating with the Elastic APM intake API

Package Exports

  • elastic-apm-http-client

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 (elastic-apm-http-client) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

elastic-apm-http-client

Build status Standard - JavaScript Style Guide

A low-level HTTP client for communicating with the Elastic APM intake API.

This module is meant for building other modules that needs to communicate with Elastic APM.

If you are looking to use Elastic APM in your app or website, you'd most likely want to check out the official Elastic APM agent for Node.js instead.

If you are looking for the version of this module that supports the Opbeat intake API, see the opbeat branch.

Installation

npm install elastic-apm-http-client

Example Usage

var client = require('elastic-apm-http-client')({
  userAgent: '...'
})

client.request('errors', body, function (err, res, body) {
  if (err) throw err
  console.log(body)
})

API

The module exposes an initialize function which takes a single options hash as the 1st argument:

  • userAgent - The HTTP user agent that your module should identify it self with
  • secretToken - (optional) The Elastic APM intake API secret token
  • serverUrl - (optional) The APM Server URL (default: http://localhost:8200)
  • rejectUnauthorized - (optional) Set to false if the client shouldn't verify the APM Server TLS certificates (default: true)

The init function will return a low level HTTP client primed for communicating with the Elastic APM intake API.

client.request(endpoint[, headers], body, callback)

endpoint

The Elastic APM intake API currently support the following endpoints:

  • errors
  • transactions

The default full URL's for those are:

http://localhost:8200/<endpoint>

When specifying the endpoint argument in the client.request() method, you just have to specify that last part of the URL, e.g. "releases".

headers

An optional object that you can use to supply custom headers that should be sent to the Elastic APM intake API.

body

The body should be in the form of a JavaScript object literal. The elastic-apm-http-client will take care of encoding it correctly.

callback

The callback function is called with 3 arguments:

  1. An error when applicable (usually from the http.ClientRequest object)
  2. An http.IncomingMessage object
  3. The response body (as a String)

License

MIT