New Relic Pixie Integration
The Pixie integration pulls a set of curated observability data from Pixie to send it to New Relic using the OpenTelemetry line protocol. The integration leverages PXL scripts to retrieve the data from Pixie.
Getting Started
Make sure you have a Pixie account and a New Relic account set up, and have collected the following information:
Building
make build-container
Docker is required to build the Pixie integration container image.
Usage
docker run --env-file ./env.list -it newrelic/newrelic-pixie-integration:latest
Define the following environment variables in the env.list
file:
CLUSTER_NAME=
PIXIE_API_KEY=
PIXIE_CLUSTER_ID=
NR_LICENSE_KEY=
The following environment variables are optional.
HTTP_SPAN_LIMIT=5000
DB_SPAN_LIMIT=1000
COLLECT_INTERVAL_SEC=10
HTTP_SPAN_COLLECT_INTERVAL_SEC=10
JVM_COLLECT_INTERVAL_SEC=10
MYSQL_COLLECT_INTERVAL_SEC=10
POSTGRES_COLLECT_INTERVAL_SEC=10
EXCLUDE_PODS_REGEX=
EXCLUDE_NAMESPACES_REGEX=
PIXIE_ENDPOINT=work.withpixie.ai:443
NR_OTLP_HOST=otlp.nr-data.net:4317
VERBOSE=true
The *_LIMIT
and *_INTERVAL_SEC
environment variables can be used to control the amount of data that is sent to New Relic. The COLLECT_INTERVAL_SEC
environment variable sets the collection interval for all PXL scripts. The other *_INTERVAL_SEC
environment variables are overrides for the individual scripts. Setting the interval to 0
will disable sending that data to New Relic. The smallest valid interval is 2 seconds.
The EXCLUDE_PODS_REGEX
and EXCLUDE_NAMESPACES_REGEX
environment variables can be configured with RE2 regular expressions to not send observability data to New Relic for the matching pods and namespaces. When EXCLUDE_NAMESPACES_REGEX
is provided, no data for the matching namespaces will be sent. When EXCLUDE_PODS_REGEX
is provided, no data for the matching pods (independent of the namespace they are in) will be sent.
Testing
After executing the command above Pixie data should be flowing into your New Relic account. Use the following NRQL queries to verify this:
Metrics
SELECT * FROM Metric WHERE instrumentation.provider='pixie'
Spans
SELECT * FROM Span WHERE instrumentation.provider='pixie'
Support
New Relic hosts and moderates an online forum where customers can interact with New Relic employees as well as other users to get help and share best practices. Like all official New Relic open source projects, there's a related Community topic in the New Relic Explorers Hub. You can find this project's topic/threads here: https://discuss.newrelic.com/t/new-relic-pixie-integration/143646
Contribute
We encourage your contributions to improve the Pixie integration! 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 once 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 HackerOne.
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 New Relic Pixie integration is licensed under the Apache 2.0 License.
The integration also uses source code from third-party libraries. You can find full details on which libraries are used and the terms under which they are licensed in the third-party notices document.