Socket
Socket
Sign inDemoInstall

@dynatrace/api-client

Package Overview
Dependencies
55
Maintainers
6
Versions
42
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @dynatrace/api-client

A NodeJS package for the Dynatrace REST API


Version published
Maintainers
6
Created

Readme

Source

Dynatrace API Module

Welcome to the Dynatrace Api node module. This is a simple helper module for interacting with the Dynatrace API including caching support.

Disclaimer

This plugin is community contributed and not officially supported by Dynatrace. In case of problems, feature requests, or questions submit a ticket on GitHub .

Requirements

  • Dynatrace SaaS or Managed environment
  • API key from Dynatrace environment
  • Minimum node version 6.10

Basic Usage

Problem Feed and Details

const { Dynatrace } = require("@davis/dynatrace");
const redis = require("redis").createClient();

const dynatrace = new Dynatrace({
  baseUrl: "https://base-url-of-dynatrace-server",
  apiToken: "api-token-of-dynatrace-server",
  redis: redis, // this is optional
  cacheTTL: 600, // defaults to 60. Time to cache entities in seconds
  cachePrefix: "davis-redis-cache" // prefix for redis keys to prevent collisions
});

dynatrace
  .problemFeed({
    relativeTime: "day"
  })
  .then(problems => {
    // Full list of problems here
    console.log(`There were ${problems.length} problems in the last day.`);
    // There were 191 problems in the last day.
    return problems[0];
  })
  .then(problem => {
    // single problem here
    console.log(
      `The first problem is a ${problem.status} ${problem.impactLevel} problem`
    );
    // The first problem is a CLOSED APPLICATION problem
    return problem.getDetails();
  })
  .then(details => {
    // more detailed problem information here
    console.log(`with ${details.commentCount} comments.`);
    // with 0 comments.

    return details.addComment({
      content: "Checked using the dynatrace nodejs client",
      username: "@cto",
      context: "nodejs client"
    });
  });

Timeseries

dynatrace
  .applications({ tag: "davis" })
  .then(apps => _.find(apps, a => a.displayName === "Davis"))
  .then(davis => {
    return davis.userActionDurationXHR({
      queryMode: "total",
      relativeTime: "day"
    });
  })
  .then(data => {
    console.log(util.inspect(data, null, null));
  });

// ​​​​​{ dataPoints: ​​​​​
// ​​​​​   { 'APPLICATION-7D7CBD136E0B9959': [ [ 1520351760000, 423683.00326322095 ] ] },​​​​​
// ​​​​​  timeseriesId: 'com.dynatrace.builtin:app.useractionduration.xhr',​​​​​
// ​​​​​  unit: 'MicroSecond (µs)',​​​​​
// ​​​​​  entities: { 'APPLICATION-7D7CBD136E0B9959': 'Davis' },​​​​​
// ​​​​​  resolutionInMillisUTC: 86400000,​​​​​
// ​​​​​  aggregationType: 'AVG' }​​​​​

Deployments

Deploy An Application
async function deploy(entityId) {
  const deployment = dynatrace.startDeployment({
    deploymentName: "Test deployment",
    deploymentProject: "dynatrace node module",
    deploymentVersion: "0.0.1-7",
    source: "dynatrace node module"
  });

  // helpers for setting API parameters
  deployment.attachRules({ entityIds: [entityId] });

  // Deployment things here

  deployment.ciBackLink("https://link-to-ci");
  return deployment.send();
}
Get Deployments
async function deployments(entityId) {
  dynatrace
    .applications()
    .then(apps => apps[0])
    .then(app => app.deployments())
    .then(console.log);
}

Timeseries

dynatrace
  .applications()
  .then(apps => apps[0])
  .then(app =>
    app.userActionsPerMinute({
      relativeTime: "2hours",
      queryMode: "total",
      aggregationType: "avg"
    })
  );

Keywords

FAQs

Last updated on 11 May 2020

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc