Skip to content

Instantly share code, notes, and snippets.

@slorber
Created March 4, 2013 13:44
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save slorber/5082320 to your computer and use it in GitHub Desktop.
Save slorber/5082320 to your computer and use it in GitHub Desktop.
Basic extension / custom SpringBatch support for NewRelic
<?xml version="1.0" encoding="UTF-8"?>
<urn:extension xmlns:urn="newrelic-extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="newrelic-extension extension.xsd" name="Custom SpringBatch extension" version="1.0">
<urn:instrumentation metricPrefix="SpringBatch">
<urn:pointcut transactionStartPoint="true" ignoreTransaction="false" excludeFromTransactionTrace="false" metricNameFormat="Job execution">
<urn:className>org.springframework.batch.core.launch.support.SimpleJobLauncher</urn:className>
<urn:method>
<urn:name>run</urn:name>
<urn:parameters>
<urn:type>org.springframework.batch.core.Job</urn:type>
<urn:type>org.springframework.batch.core.JobParameters</urn:type>
</urn:parameters>
</urn:method>
</urn:pointcut>
<urn:pointcut transactionStartPoint="false" ignoreTransaction="false" excludeFromTransactionTrace="false" metricNameFormat="Step execution">
<urn:className>org.springframework.batch.core.job.SimpleStepHandler</urn:className>
<urn:method>
<urn:name>handleStep</urn:name>
<urn:parameters>
<urn:type>org.springframework.batch.core.Step</urn:type>
<urn:type>org.springframework.batch.core.JobExecution</urn:type>
</urn:parameters>
</urn:method>
</urn:pointcut>
<urn:pointcut transactionStartPoint="false" ignoreTransaction="false" excludeFromTransactionTrace="false" metricNameFormat="Tasklet execution">
<urn:className>org.springframework.batch.core.step.tasklet.TaskletStep</urn:className>
<urn:method>
<urn:name>doExecute</urn:name>
<urn:parameters>
<urn:type>org.springframework.batch.core.StepExecution</urn:type>
</urn:parameters>
</urn:method>
</urn:pointcut>
<urn:pointcut transactionStartPoint="false" ignoreTransaction="false" excludeFromTransactionTrace="false" metricNameFormat="Chunk execution">
<urn:className>org.springframework.batch.core.step.item.ChunkOrientedTasklet</urn:className>
<urn:method>
<urn:name>execute</urn:name>
<urn:parameters>
<urn:type>org.springframework.batch.core.StepContribution</urn:type>
<urn:type>org.springframework.batch.core.scope.context.ChunkContext</urn:type>
</urn:parameters>
</urn:method>
</urn:pointcut>
<urn:pointcut transactionStartPoint="false" ignoreTransaction="false" excludeFromTransactionTrace="false" metricNameFormat="Chunk read">
<urn:className>org.springframework.batch.core.step.item.SimpleChunkProvider</urn:className>
<urn:method>
<urn:name>provide</urn:name>
<urn:parameters>
<urn:type>org.springframework.batch.core.StepContribution</urn:type>
</urn:parameters>
</urn:method>
</urn:pointcut>
<urn:pointcut transactionStartPoint="false" ignoreTransaction="false" excludeFromTransactionTrace="false" metricNameFormat="Chunk read">
<urn:className>org.springframework.batch.core.step.item.FaultTolerantChunkProvider</urn:className>
<urn:method>
<urn:name>provide</urn:name>
<urn:parameters>
<urn:type>org.springframework.batch.core.StepContribution</urn:type>
</urn:parameters>
</urn:method>
</urn:pointcut>
<urn:pointcut transactionStartPoint="false" ignoreTransaction="false" excludeFromTransactionTrace="false" metricNameFormat="Chunk process">
<urn:className>org.springframework.batch.core.step.item.SimpleChunkProcessor</urn:className>
<urn:method>
<urn:name>transform</urn:name>
<urn:parameters>
<urn:type>org.springframework.batch.core.StepContribution</urn:type>
<urn:type>org.springframework.batch.core.step.item.Chunk</urn:type>
</urn:parameters>
</urn:method>
</urn:pointcut>
<urn:pointcut transactionStartPoint="false" ignoreTransaction="false" excludeFromTransactionTrace="false" metricNameFormat="Chunk process">
<urn:className>org.springframework.batch.core.step.item.FaultTolerantChunkProcessor</urn:className>
<urn:method>
<urn:name>transform</urn:name>
<urn:parameters>
<urn:type>org.springframework.batch.core.StepContribution</urn:type>
<urn:type>org.springframework.batch.core.step.item.Chunk</urn:type>
</urn:parameters>
</urn:method>
</urn:pointcut>
<urn:pointcut transactionStartPoint="false" ignoreTransaction="false" excludeFromTransactionTrace="false" metricNameFormat="Chunk write">
<urn:className>org.springframework.batch.core.step.item.SimpleChunkProcessor</urn:className>
<urn:method>
<urn:name>write</urn:name>
<urn:parameters>
<urn:type>org.springframework.batch.core.StepContribution</urn:type>
<urn:type>org.springframework.batch.core.step.item.Chunk</urn:type>
<urn:type>org.springframework.batch.core.step.item.Chunk</urn:type>
</urn:parameters>
</urn:method>
</urn:pointcut>
<urn:pointcut transactionStartPoint="false" ignoreTransaction="false" excludeFromTransactionTrace="false" metricNameFormat="Chunk write">
<urn:className>org.springframework.batch.core.step.item.FaultTolerantChunkProcessor</urn:className>
<urn:method>
<urn:name>write</urn:name>
<urn:parameters>
<urn:type>org.springframework.batch.core.StepContribution</urn:type>
<urn:type>org.springframework.batch.core.step.item.Chunk</urn:type>
<urn:type>org.springframework.batch.core.step.item.Chunk</urn:type>
</urn:parameters>
</urn:method>
</urn:pointcut>
<urn:pointcut transactionStartPoint="false" ignoreTransaction="false" excludeFromTransactionTrace="false" metricNameFormat="JobRepository operation">
<urn:className>org.springframework.batch.core.repository.support.SimpleJobRepository</urn:className>
<urn:method>
<urn:name>isJobInstanceExists</urn:name>
<urn:parameters>
<urn:type>java.lang.String</urn:type>
<urn:type>org.springframework.batch.core.JobParameters</urn:type>
</urn:parameters>
</urn:method>
<urn:method>
<urn:name>createJobExecution</urn:name>
<urn:parameters>
<urn:type>java.lang.String</urn:type>
<urn:type>org.springframework.batch.core.JobParameters</urn:type>
</urn:parameters>
</urn:method>
<urn:method>
<urn:name>update</urn:name>
<urn:parameters>
<urn:type>org.springframework.batch.core.JobExecution</urn:type>
</urn:parameters>
</urn:method>
<urn:method>
<urn:name>add</urn:name>
<urn:parameters>
<urn:type>org.springframework.batch.core.StepExecution</urn:type>
</urn:parameters>
</urn:method>
<urn:method>
<urn:name>update</urn:name>
<urn:parameters>
<urn:type>org.springframework.batch.core.StepExecution</urn:type>
</urn:parameters>
</urn:method>
<urn:method>
<urn:name>updateExecutionContext</urn:name>
<urn:parameters>
<urn:type>org.springframework.batch.core.StepExecution</urn:type>
</urn:parameters>
</urn:method>
<urn:method>
<urn:name>updateExecutionContext</urn:name>
<urn:parameters>
<urn:type>org.springframework.batch.core.JobExecution</urn:type>
</urn:parameters>
</urn:method>
<urn:method>
<urn:name>getLastStepExecution</urn:name>
<urn:parameters>
<urn:type>org.springframework.batch.core.JobInstance</urn:type>
<urn:type>java.lang.String</urn:type>
</urn:parameters>
</urn:method>
<urn:method>
<urn:name>getStepExecutionCount</urn:name>
<urn:parameters>
<urn:type>org.springframework.batch.core.JobInstance</urn:type>
<urn:type>java.lang.String</urn:type>
</urn:parameters>
</urn:method>
<urn:method>
<urn:name>getLastJobExecution</urn:name>
<urn:parameters>
<urn:type>java.lang.String</urn:type>
<urn:type>org.springframework.batch.core.JobParameters</urn:type>
</urn:parameters>
</urn:method>
</urn:pointcut>
</urn:instrumentation>
</urn:extension>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment