Increased competition in the market is challenging organizations to build product features faster in incremental chunks and use data to measure the efficacy of feature releases and help guide investment decisions.
With the widespread adoption of feature flags as one of the primary mechanisms to release features faster, reporting success and operational metrics must adapt to have feature level context – both in terms of engineering and business performance.
New Relic and Split enable customers to make data-driven decisions, with a shared fundamental belief that you can’t improve what you can’t measure. New Relic and Split tools allow you to move faster and safer, so you can focus on building more valuable products.
“Split’s integration with New Relic’s performance and transaction level data empowers engineering, product, and DevOps teams to fix issues faster and accelerate innovation. Through this integration, New Relic provides a unified approach to observe and measure all contextual changes to customers’ applications at a feature level.”Mark Weitzel, Vice President and General Manager, Developer Ecosystem at New Relic.
Find and fix problems faster, build high-performing teams, and accelerate your digital transformation with Split impressions in New Relic.
Configure the New Relic integration in Split’s SDK
Split’s existing New Relic integration can be configured within your accounts admin settings. Learn more in our documentation. The existing integration annotates New Relic transactions with Split feature flags information that can be used to correlate application metrics with feature flag changes.
Learn more below about how to enrich Split’s existing integration by using real-time impressions to filter your New Relic transaction data.
Using Split’s Java SDK, implement the integration as a synchronous impression listener and it can be enabled as shown below or in our documentation.
SplitClientConfig config = SplitClientConfig.builder() .integrations( IntegrationsConfig.builder() .newRelicImpressionListener() .build()) .build(); SplitFactoryBuilder.build("<API_TOKEN>").client();
This integration is only enabled if the Split SDK detects the New Relic agent in the classpath. If the agent is not detected, the following error will be displayed in the logs (if logging is enabled):
WARN [main] (IntegrationsConfig.java:72) - New Relic agent not found. Continuing without it
If you’re not using Java and would like us to add this integration to Split’s additional supported languages please contact your Split account manager or email email@example.com.
View transaction data in New Relic by treatment
For demonstration, we have an application in New Relic called Origami Portal where we are running Split’s Java SDK with the integration configured and New Relic’s Java agent.
With each transaction, new columns will be automatically captured for each split evaluated with the value captured as the treatment shown.
|Column header||Column value||Description|
|Treatment||Split name and treatment received.|
|key||Key used in the evaluation of the splits.|
With the below basic query, you can see all transactions where the split_key is not null.
SELECT * FROM Transaction WHERE appName = 'Origami Portal' AND split_key IS NOT NULL since 1 hour ago
With our Split impressions added to the transaction level data in New Relic, we can easily query our New Relic data to understand changes in performance for users with different treatments.
Below we are querying for the response time faceting by the split treatment for a particular split.
Interested in learning more? We’re looking to make this experience even simpler and we’d love your feedback. Contact your Split account manager or email firstname.lastname@example.org to discover our projects and provide feedback directly from the teams that are building the products!
Stay up to date
Don’t miss out! Subscribe to our digest to get the latest about feature flags, continuous delivery, experimentation, and more.
SRE goals align perfectly with robust feature delivery and experimentation, where every new feature gets tested, and releases happen behind feature flags.
Engineers are deploying half-finished features into production, and they’re doing it on purpose. They use feature flags to hide their partially completed work. You can too.
Learn how to set up continuous deployment in Java, then add a feature flag to your app to change how it behaves in production without having to redeploy.