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

cloud-functions-metrics-service

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cloud-functions-metrics-service

Node.js library to save serverless metrics from openwhisk to IBM Cloud Monitoring Service

  • 0.2.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
0
Maintainers
1
Weekly downloads
 
Created
Source

cloud-functions-metrics-service

This project uses IBM Cloud Monitoring to save metrics from IBM Cloud Functions.

Metrics collected by the openwhisk-metrics library are forwarded into the external monitoring service.

usage

Metrics can be forwarded into IBM Cloud Monitoring in real-time or sent in batches using a background process.

  • Real-time ingestion ensures metrics appear immediately in the monitoring service. Metrics forwarded using the batch ingestion won't be available until the next background task execution.
  • Batch ingestion does not add any delay to action invocations. Real-time ingestion saves invocation metrics each time the action handler is called. This adds a (small) delay to each invocation, where the library calls the external metrics service.

real-time ingestion

  • Install OpenWhisk metrics and IBM Cloud Monitoring service libraries

    $ npm install openwhisk-metrics cloud-functions-metrics-service
    
  • Wrap action handlers using external libraries

    const metrics = require('openwhisk-metrics')
    const service = require('cloud-functions-metrics-service')
    
    metrics.service = service.client({  
      host: 'metrics.ng.bluemix.net',
      scope: '...',
      api_key: '...'
    })
    
    const main = params => {
      return { message: "Hello World" }
    }
    
    exports.main = metrics(main)
    

Configuration options for the openwhisk-metrics library are available in the project repository.

Configuration options for the IBM Cloud Monitoring service are available in the project repository.

Metrics forwarded using external real-time ingestion will not be logged to the console. If you want to enable this for debugging or testing, use this code snippet.

const client = service.client({  
  host: 'metrics.ng.bluemix.net',
  scope: '...',
  api_key: '...'
})

const log = metrics.service

metrics.service = values => {
  log.save(values)
  return client.save(values)
}

batch ingestion

set up metric collectors
  • Set up action handlers with openwhisk-metrics

    const metrics = require('openwhisk-metrics')
    
    const main = params => {
      return { message: "Hello World" }
    }
    
    module.exports.main = metrics(main) 
    

All actions you want to collect metrics for should use the library as above. Use the action names in the configuration below for the background task.

create metric forwarder action
  • Download project repository

    $ git clone https://github.com/jthomas/cloud-functions-metrics-service
    $ cd cloud-functions-metrics-service
    
  • Create action deployment package.

    $ npm install
    $ zip -r action.zip index.js package.json lib node_modules
    
  • Fill in authentication parameters in action configuration file (config.json).

    {
      "actions": ["action_names_to_monitor"],
      "service": {
        "host": "metrics.ng.bluemix.net",
        "scope": "...",
        "api_key": "..."          
      }
    }
    

    Configuration options for the IBM Cloud Monitoring service are available in the project repository.

  • Create new OpenWhisk action from deployment package and configuration file.

    $ wsk action create metric-forwarder --kind nodejs:8 action.zip --param-file config.json
    
  • Create trigger feed for alarm package to run metric-forwarder on periodic schedule.

    $ wsk trigger create interval \
      --feed /whisk.system/alarms/interval \
      --param minutes 10 \
    
  • Bind trigger to action using rule.

    $ wsk rule create forward-metrics-on-interval interval metric-forwarder
    

Keywords

FAQs

Package last updated on 09 Jan 2018

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