Coder Social home page Coder Social logo

serverless-oneagent's Introduction

Dynatrace
OneAgent Serverless plugin


Depreciation note

Starting with Dynatrace OneAgent 1.207, Dynatrace offers a dedicated AWS Lambda layer to monitor Node.js based AWS Lambda functions. Please review the Dynatrace product news and documentation to learn more.

The new OneAgent deployment scheme voids the necessity of OneAgent Serverless plugin and its development and support will therefore be discontinued.


dynatrace-oneagent is a plugin for serverless framework which will add Dynatrace monitoring automatically to serverless deployments.

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

Configuration

The Dynatrace OneAgent serverless plugin will configure serverless and serverless-webpack to bundle Dynatrace npm module for PaaS.

In regular serverless projects, the plugin will npm install and tailor Dynatrace npm module for PaaS during serverless packaging process. It will also reconfigure the function handler definition to load Dynatrace OneAgent at function instance startup.

In serverless-webpack case, the plugin will configure webpack to include Dynatrace npm module for PaaS into the bundle. The resulting deployment zip file will contain the Javascript file for the handler function and a node_modules folder with Dynatrace OneAgent.

Enabling your serverless project for Dynatrace OneAgent is a two steps process:

  1. add plugin to serverless.yml
  2. specify OneAgent options

Add plugin to serverless.yml

Extend the plugins list of the projects serverless.yml file with @dynatrace/serverless-oneagent plugin.

service: dynatrace-oneagent-sample

plugins:
  - '@dynatrace/serverless-oneagent'

provider:
  name: aws
  runtime: nodejs10.x

functions:
  hello:
    handler: index.hello
    events:
      - http:
          method: GET
          path: hello

Specify OneAgent options

OneAgent options can be specified in serverless.yml file or serverless (sls) command line.

The option string can be obtained from serverless configuration screen (Deploy Dynatrace > Setup Serverless integration).

Add following to serverless.yml:

custom:
  serverless-oneagent:
    options: '{"server":"...","tenant":"...", "tenanttoken":"..."}'

If you do not want to add OneAgent options to the serverless.yml , the options can be specified as a command line argument to serverless (sls) command.

serverless deploy --dt-oneagent-options='{"dynatraceTagPropertyPath":"headers.x-dynatrace","server":"...","tenant":"...","tenanttoken":"..."}'

Options summary

serverless.yml command line description
options --dt-oneagent-options=<option string> Specifies OneAgent options
npmModuleVersion --dt-oneagent-module-version=<version> Specifies the version of OneAgent for PaaS module. Default is latest, specify next for @next version.
verbose --verbose enables extended output of plugin processing. --verbose enables verbose mode for all plugins, while verbose option in serverless.yml enables verbose output for this plugin only.
exclude --dt-exclude exclude given list of functions from instrumentation. Separate function names with comma on command line.
skipUninstall --dt-skip-uninstall de-installation of @dynatrace/oneagent module after packaging might interfere with alternative dependency management tools like lerna. This option suppresses the de-installation of @dynatrace/oneagent npm module.
...
functions:
  lambdaTest1:
    handler: test/first.handler

  lambdaTest2:
    handler: test/second.handler
...
custom:
  serverless-oneagent:
    # enable serverless-oneagent plugin verbose mode
    verbose: true
    # specify @next Dynatrace OneAgent npm module
    npmModuleVersion: next
    exclude:
      - lambdaTest2
serverless deploy --dt-oneagent-module-version=next --dt-oneagent-options='{"dynatraceTagPropertyPath":"headers.x-dynatrace","server":"...","tenant":"...","tenanttoken":"..."}' --verbose --dt-exclude=lambdaTest2

Yarn configuration

Serverless plugin installs automatically @dynatrace/oneagent dependency at build time which causes a Yarn build error. To work around that build error, manually add @dynatrace/oneagent in the package.json file

e.g.

"dependencies": {
        "@dynatrace/oneagent": "latest"
},
"devDependencies": {
        "@dynatrace/serverless-oneagent": "xxx"
}

Samples

The samples folder contains ready to go serverless projects.

  • AWS Lambda with Node.js runtime serverless
  • AWS Lambda with Node.js runtime and serverless-webpack serverless

Supported provider and runtime environments

  • The current plugin version supports following deployments
    • AWS Lambda with Node.js runtime version 8.x, 10.x and 12.x

Support

In case of problems, feature requests, or questions submit a ticket.

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.