Skip to content

newrelic/newrelic-pcf-nozzle-tile

New Relic Community Plus header

New Relic VMware Tanzu Nozzle Tile

The New Relic VMware Tanzu (PCF) Nozzle Tile is a Firehose nozzle that forwards metrics from VMware Tanzu Loggregator in VMware Tanzu to New Relic for visualization. ​ This code can be either pushed as a regular VMware Tanzu application with cf push or installed in Ops Manager using the tile version. ​ The tile is also available in the Pivotal Network alongside the documentation describing how to configure and use the nozzle. ​ See our documentation for more details.

Compatibility

​ The New Relic VMware Tanzu Nozzle Tile is compatible with VMware Tanzu 2.4 and higher. ​

Changes From V1 to V2

​ The V2 release includes several additional features as well as breaking changes. Deployment configurations, alerts, and dashboards might require updates. Full details are available in the V2 notes. ​

Main updates

  • Reverse Log Proxy Gateway and V2 Envelope Format
  • Event type adjustments
  • Event attribute modifications
  • Event aggregation - metric type events
  • Multi-account event routing
  • Caching and rate limiting - VMware Tanzu API calls
  • Configuration variable changes
  • Log message filters
  • Metric type filters removed
  • Graceful shutdown ​

Application build and deploy

​ The application is prebuilt and can be pushed as an application or imported to Ops Manager. If you make any changes to the code, you can rebuild both the binary and the tile. ​

Build the binary

  1. Get dep to manage dependencies:
$ go get -u github.com/golang/dep/cmd/dep
  1. Generate the nr-fh-nozzle binary inside ./dist:
$ make build-linux

You can then deploy the application with cf push using the newly generated files, as described in the push as an application section. ​

Generate the tile

  1. Install bosh-cli and tile-generator. ​
  2. Generate the tile under ./product.
$ make release

You can use the generated tile right away and import it to Ops Manager. ​

Testing

Requirements

  • Access to a VMware Tanzu environment
  • VMware Tanzu API credentials with admin rights
  • VMware Tanzu UAA authorized client

Setup

  1. Set your environment variables as per the manifest.yml.sample file.
  2. Run go run main.go ​ To run tests and compile locally:
$ make build

Generate UAAC Client

​ You can create a new doppler.firehose enabled client instead of retrieving the default client:

$ uaac target https://uaa.[your cf system domain]
$ uaac token client get admin -s [your admin-secret]
$ uaac client add firehose-to-newrelic \
    --name firehose-to-newrelic \
    --secret [your_client_secret] \
    --authorized_grant_types client_credentials,refresh_token \
    --authorities doppler.firehose,cloud_controller.admin_read_only \
    --scope doppler.firehose

  • firehose-to-newrelic: your NRF_CF_CLIENT_ID env variable.
  • --secret: your NRF_CF_CLIENT_SECRET env variable. ​

Push as an application

​ When you push the app as an application, you must edit manifest.yml first

  1. Download the manifest.yml.sample file and the release from the repo.
  2. Unzip the release, rename manifest.yml.sample to manifest.yml and place the file in the dist directory.
  3. Modify the manifest file to match your environment.
  4. Deploy:
cf push -f <manifest file>

Make sure to assign proper values to all required environment variables. Any property values within angle brackets need to be changed to the correct value for your environment. ​

When you're pushing the nozzle as an app, the product and release folders are not required. Make sure to remove both folders to reduce the size of the upload, or use the .cfignore file. ​ ​

Import as a tile in Ops Manager

​ Import the tile from releases to Ops Mgr. Once imported, install the tile, and follow the steps detailed in the Pivotal Partner Docs. ​

Import dashboard

A VMware Tanzu dashboard could be manually imported to New Relic dashboards using the Dashboard API. Follow this documentation to get detailed information about where to obtain the Admin user API key and to use the API explorer.

  1. Go to API Explorer
  2. Use your Admin user API key
  3. Copy the content of dashboard.json and paste to the dashboard parameter of the request.
  4. Send the request

Support

Should you need assistance with New Relic products, you are in good hands with several support diagnostic tools and support channels.

If the issue has been confirmed as a bug or is a feature request, file a GitHub issue.

Support Channels

Privacy

At New Relic we take your privacy and the security of your information seriously, and are committed to protecting your information. We must emphasize the importance of not sharing personal data in public forums, and ask all users to scrub logs and diagnostic information for sensitive information, whether personal, proprietary, or otherwise.

We define “Personal Data” as any information relating to an identified or identifiable individual, including, for example, your name, phone number, post code or zip code, Device ID, IP address, and email address.

For more information, review New Relic’s General Data Privacy Notice.

Contribute

We encourage your contributions to improve this project! Keep in mind that when you submit your pull request, you'll need to sign the CLA via the click-through using CLA-Assistant. You only have to sign the CLA one time per project.

If you have any questions, or to execute our corporate CLA (which is required if your contribution is on behalf of a company), drop us an email at opensource@newrelic.com.

A note about vulnerabilities

As noted in our security policy, New Relic is committed to the privacy and security of our customers and their data. We believe that providing coordinated disclosure by security researchers and engaging with the security community are important means to achieve our security goals.

If you believe you have found a security vulnerability in this project or any of New Relic's products or websites, we welcome and greatly appreciate you reporting it to New Relic through our bug bounty program.

If you would like to contribute to this project, review these guidelines.

To all contributors, we thank you! Without your contribution, this project would not be what it is today. ​

License

​ The project is released under version 2.0 of the Apache License.