@dynatrace/api-client
    TypeScript icon, indicating that this package has built-in type declarations

    2.16.5 • Public • Published

    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"
        })
      );

    Install

    npm i @dynatrace/api-client

    DownloadsWeekly Downloads

    6

    Version

    2.16.5

    License

    Apache-2.0

    Unpacked Size

    273 kB

    Total Files

    57

    Last publish

    Collaborators

    • thschue
    • heckelmann
    • dynatrace-nodejs
    • beeme1mr
    • ddprrt
    • dyladan
    • dpunz
    • kamtschatka
    • lukasholzer