Class MonitoringPipelineListener
- java.lang.Object
-
- io.jenkins.plugins.opentelemetry.job.jenkins.AbstractPipelineListener
-
- io.jenkins.plugins.opentelemetry.job.MonitoringPipelineListener
-
- All Implemented Interfaces:
ExtensionPoint
,PipelineListener
,OtelComponent
,Comparable<OtelComponent>
,org.jenkinsci.plugins.workflow.flow.StepListener
@Extension(dynamicLoadable=YES, optional=true) public class MonitoringPipelineListener extends AbstractPipelineListener implements PipelineListener, org.jenkinsci.plugins.workflow.flow.StepListener, OtelComponent
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface hudson.ExtensionPoint
ExtensionPoint.LegacyInstancesAreScopedToHudson
-
-
Constructor Summary
Constructors Constructor Description MonitoringPipelineListener()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
afterSdkInitialized(io.opentelemetry.api.metrics.Meter meter, io.opentelemetry.api.logs.LoggerProvider loggerProvider, io.opentelemetry.api.events.EventEmitter eventEmitter, io.opentelemetry.api.trace.Tracer tracer, io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties configProperties)
Invoked soon after the Otel SDK has been initialized.void
beforeSdkShutdown()
Invoked just before the Otel SDK is shutdown.protected List<StepHandler>
getStepHandlers()
io.opentelemetry.api.trace.Tracer
getTracer()
OtelTraceService
getTracerService()
void
notifyOfNewStep(org.jenkinsci.plugins.workflow.steps.Step step, org.jenkinsci.plugins.workflow.steps.StepContext context)
void
onAfterAtomicStep(org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode node, org.jenkinsci.plugins.workflow.graph.FlowNode nextNode, org.jenkinsci.plugins.workflow.job.WorkflowRun run)
Just after the atomic stepvoid
onAfterStartNodeStep(org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode stepStartNode, String nodeLabel, org.jenkinsci.plugins.workflow.job.WorkflowRun run)
Just after the `node` step starts.void
onAtomicStep(org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode node, org.jenkinsci.plugins.workflow.job.WorkflowRun run)
Just before the atomic step startsvoid
onEndNodeStep(org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode node, String nodeName, org.jenkinsci.plugins.workflow.graph.FlowNode nextNode, org.jenkinsci.plugins.workflow.job.WorkflowRun run)
Just after the `node` step endsvoid
onEndParallelStepBranch(org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode node, String branchName, org.jenkinsci.plugins.workflow.graph.FlowNode nextNode, org.jenkinsci.plugins.workflow.job.WorkflowRun run)
Just before the `parallel` branch endsvoid
onEndStageStep(org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode node, String stageName, org.jenkinsci.plugins.workflow.graph.FlowNode nextNode, org.jenkinsci.plugins.workflow.job.WorkflowRun run)
Just after the `stage` step endsvoid
onStartNodeStep(org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode stepStartNode, String agentLabel, org.jenkinsci.plugins.workflow.job.WorkflowRun run)
Just before the `node` step starts.void
onStartParallelStepBranch(org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode stepStartNode, String branchName, org.jenkinsci.plugins.workflow.job.WorkflowRun run)
Just before the `parallel` branch startsvoid
onStartStageStep(org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode stepStartNode, String stageName, org.jenkinsci.plugins.workflow.job.WorkflowRun run)
Just before the `stage`step startsvoid
postConstruct()
void
setOpenTelemetryTracerService(OtelTraceService otelTraceService)
protected io.opentelemetry.context.Scope
setupContext(org.jenkinsci.plugins.workflow.job.WorkflowRun run, org.jenkinsci.plugins.workflow.graph.FlowNode node)
String
toString()
-
Methods inherited from class io.jenkins.plugins.opentelemetry.job.jenkins.AbstractPipelineListener
onEndPipeline, onStartPipeline
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface io.jenkins.plugins.opentelemetry.OtelComponent
afterSdkInitialized, compareTo, ordinal
-
Methods inherited from interface io.jenkins.plugins.opentelemetry.job.jenkins.PipelineListener
onEndPipeline, onStartPipeline
-
-
-
-
Method Detail
-
postConstruct
@PostConstruct public void postConstruct()
-
onStartNodeStep
public void onStartNodeStep(@NonNull org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode stepStartNode, @Nullable String agentLabel, @NonNull org.jenkinsci.plugins.workflow.job.WorkflowRun run)
Description copied from interface:PipelineListener
Just before the `node` step starts.- Specified by:
onStartNodeStep
in interfacePipelineListener
- Overrides:
onStartNodeStep
in classAbstractPipelineListener
-
onAfterStartNodeStep
public void onAfterStartNodeStep(@NonNull org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode stepStartNode, @Nullable String nodeLabel, @NonNull org.jenkinsci.plugins.workflow.job.WorkflowRun run)
Description copied from interface:PipelineListener
Just after the `node` step starts.- Specified by:
onAfterStartNodeStep
in interfacePipelineListener
- Overrides:
onAfterStartNodeStep
in classAbstractPipelineListener
-
onStartStageStep
public void onStartStageStep(@NonNull org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode stepStartNode, @NonNull String stageName, @NonNull org.jenkinsci.plugins.workflow.job.WorkflowRun run)
Description copied from interface:PipelineListener
Just before the `stage`step starts- Specified by:
onStartStageStep
in interfacePipelineListener
- Overrides:
onStartStageStep
in classAbstractPipelineListener
-
onEndNodeStep
public void onEndNodeStep(@NonNull org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode node, @NonNull String nodeName, org.jenkinsci.plugins.workflow.graph.FlowNode nextNode, @NonNull org.jenkinsci.plugins.workflow.job.WorkflowRun run)
Description copied from interface:PipelineListener
Just after the `node` step ends- Specified by:
onEndNodeStep
in interfacePipelineListener
- Overrides:
onEndNodeStep
in classAbstractPipelineListener
-
onEndStageStep
public void onEndStageStep(@NonNull org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode node, @NonNull String stageName, org.jenkinsci.plugins.workflow.graph.FlowNode nextNode, @NonNull org.jenkinsci.plugins.workflow.job.WorkflowRun run)
Description copied from interface:PipelineListener
Just after the `stage` step ends- Specified by:
onEndStageStep
in interfacePipelineListener
- Overrides:
onEndStageStep
in classAbstractPipelineListener
-
getStepHandlers
protected List<StepHandler> getStepHandlers()
-
onAtomicStep
public void onAtomicStep(@NonNull org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode node, @NonNull org.jenkinsci.plugins.workflow.job.WorkflowRun run)
Description copied from interface:PipelineListener
Just before the atomic step starts- Specified by:
onAtomicStep
in interfacePipelineListener
- Overrides:
onAtomicStep
in classAbstractPipelineListener
-
onAfterAtomicStep
public void onAfterAtomicStep(@NonNull org.jenkinsci.plugins.workflow.cps.nodes.StepAtomNode node, org.jenkinsci.plugins.workflow.graph.FlowNode nextNode, @NonNull org.jenkinsci.plugins.workflow.job.WorkflowRun run)
Description copied from interface:PipelineListener
Just after the atomic step- Specified by:
onAfterAtomicStep
in interfacePipelineListener
- Overrides:
onAfterAtomicStep
in classAbstractPipelineListener
-
onStartParallelStepBranch
public void onStartParallelStepBranch(@NonNull org.jenkinsci.plugins.workflow.cps.nodes.StepStartNode stepStartNode, @NonNull String branchName, @NonNull org.jenkinsci.plugins.workflow.job.WorkflowRun run)
Description copied from interface:PipelineListener
Just before the `parallel` branch starts- Specified by:
onStartParallelStepBranch
in interfacePipelineListener
- Overrides:
onStartParallelStepBranch
in classAbstractPipelineListener
-
onEndParallelStepBranch
public void onEndParallelStepBranch(@NonNull org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode node, @NonNull String branchName, org.jenkinsci.plugins.workflow.graph.FlowNode nextNode, @NonNull org.jenkinsci.plugins.workflow.job.WorkflowRun run)
Description copied from interface:PipelineListener
Just before the `parallel` branch ends- Specified by:
onEndParallelStepBranch
in interfacePipelineListener
- Overrides:
onEndParallelStepBranch
in classAbstractPipelineListener
-
notifyOfNewStep
public void notifyOfNewStep(@NonNull org.jenkinsci.plugins.workflow.steps.Step step, @NonNull org.jenkinsci.plugins.workflow.steps.StepContext context)
- Specified by:
notifyOfNewStep
in interfaceorg.jenkinsci.plugins.workflow.flow.StepListener
-
setupContext
@NonNull @MustBeClosed protected io.opentelemetry.context.Scope setupContext(org.jenkinsci.plugins.workflow.job.WorkflowRun run, @NonNull org.jenkinsci.plugins.workflow.graph.FlowNode node)
- Returns:
null
if noSpan
has been created for theRun
of the givenFlowNode
-
setOpenTelemetryTracerService
@Inject public final void setOpenTelemetryTracerService(@NonNull OtelTraceService otelTraceService)
-
getTracerService
@NonNull public OtelTraceService getTracerService()
-
getTracer
@NonNull public io.opentelemetry.api.trace.Tracer getTracer()
-
afterSdkInitialized
public void afterSdkInitialized(io.opentelemetry.api.metrics.Meter meter, io.opentelemetry.api.logs.LoggerProvider loggerProvider, io.opentelemetry.api.events.EventEmitter eventEmitter, io.opentelemetry.api.trace.Tracer tracer, io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties configProperties)
Description copied from interface:OtelComponent
Invoked soon after the Otel SDK has been initialized. CreatedAutoCloseable
metering instruments don't have to be closed by Otel components, the OpenTelemetry plugin takes care of this (egObservableLongUpDownCounter
,ObservableLongCounter
...)- Specified by:
afterSdkInitialized
in interfaceOtelComponent
- Parameters:
meter
-Meter
of the newly initialized Otel SDKloggerProvider
-Logger
of the newly initialized Otel SDKtracer
-Tracer
of the newly initialized Otel SDKconfigProperties
-ConfigProperties
of the newly initialized Otel SDK
-
beforeSdkShutdown
public void beforeSdkShutdown()
Description copied from interface:OtelComponent
Invoked just before the Otel SDK is shutdown. CreatedAutoCloseable
metering instruments don't have to be closed by Otel components, the OpenTelemetry plugin takes care of this (egObservableLongUpDownCounter
,ObservableLongCounter
...)- Specified by:
beforeSdkShutdown
in interfaceOtelComponent
-
-