Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@dynatrace/api-client

Package Overview
Dependencies
Maintainers
5
Versions
42
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@dynatrace/api-client

A NodeJS package for the Dynatrace REST API

  • 2.11.0
  • unpublished
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
0
Maintainers
5
Weekly downloads
 
Created
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

Package last updated on 21 Mar 2019

Did you know?

Socket

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
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc