Provides instrumentation for capturing Enovia MQL queries. It captures the MQL query and reports it as a Database call.
This use this instrumentation.
- Download the latest release.
- In the New Relic Java Agent directory (directory containing newrelic.jar), create a directory named extensions if it doe not already exist.
- Copy the release jars into the extensions directory.
- Restart the application.
After deployment, you should be able to see MQL queries showing up in transaction traces.
An MQL query is constructed from an MQL Command which is comprised of a query and a set of string parameters. The query will contain sequential $n starting with $1 and will contain the same number of arguments as there are in the set of string parameters. Database queries in New Relic can be set to be recorded via the newrelic.yml configuration file. It has a record_sql attribute that can be set to one of these three values: off, raw or obfuscated. If set to obfuscated, then the Span recording the MQL query will set the db.statement attribute to the MQL command. If set to raw, then the db.statement attribute will be set to a string where $n in the command is replaced by the corresponding string parameter. If set to off, then db.statement is not reported.
Additional there are two additonal attributes added to the Span, MQL-Command and MQL-Command-WithArgs. The values in these attributes depends of the settings.
Note that the report_sql setting applies to all database queries not just to the MQL queries. Hence if set to raw then all database spans will be reported as raw. If you are using other databases with your application and do not want them to be reported as raw, then additional settings are available that only apply to the MQL queries.
The settings are set in newrelic.yml. If not present then default values are used.
The setting are included in a MQL.Reporting stanza (sample shown below). It includes two settings: enabled and type. The enabled setting is given a true or false value. The type setting takes the same values as report_sql (off, raw or obfuscated). Default value for enabled is false and default value for obfuscated.
Note that record_sql and the MQL settings are dynamic. They can be changed in newrelic.yml and will change within a minute or so without having to restart the application.
MQL settings are ignored.
MQL-Command is set to the command and MQL-Command-WithArgs is set to the command with parameters populated.
MQL-Command is set to the command and MQL-Command-WithArgs is set to "Unable to record".
MQL-Command and MQL-Command-WithArgs are set to "Unable to record".
MQL-Command and MQL-Command-WithArgs are set to "Unable to record".
MQL-Command is set to the command and MQL-Command-WithArgs is set to "Unable to record".
MQL-Command is set to the command and MQL-Command-WithArgs is set to the command with parameters populated.
If you make changes to the instrumentation code and need to build the instrumentation jars, follow these steps
- Set environment variable NEW_RELIC_EXTENSIONS_DIR. Its value should be the directory where you want to build the jars (i.e. the extensions directory of the Java Agent).
- Using open JDK 8 build one or all of the jars using .
a. To build one jar, run the command: gradlew moduleName:clean moduleName:install
b. To build all jars, run the command: gradlew clean install - Restart the application
New Relic has open-sourced this project. This project is provided AS-IS WITHOUT WARRANTY OR DEDICATED SUPPORT. Issues and contributions should be reported to the project here on GitHub.
We encourage you to bring your experiences and questions to the Explorers Hub where our community members collaborate on solutions and new ideas.
We encourage your contributions to improve Salesforce Commerce Cloud for New Relic Browser! Keep in mind 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, required if your contribution is on behalf of a company, please drop us an email at [email protected].
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.
New Relic Java Instrumentation for Adobe Granite is licensed under the Apache 2.0 License.