Skip to content

Unable to manage datadog service when dd-trace-dotnet APM is installed #609

@alexberry

Description

@alexberry

We use https://github.com/DataDog/dd-trace-dotnet/releases/tag/v1.11.0 and, given there is no module to support it, have written one that manages package installation and ensures the service is started.

Unfortunately, the dd-trace-dotnet agent sets up a dependency on the datadog service, such that when puppet runs the datadog agent module crashes out as it is no longer able to manage the service state on windows:

Error: /Stage[main]/Datadog_agent::Windows/Service[datadogagent]: Failed to call refresh: Failed to transition the datadogagent service to the SERVICE_STOPPED state. Detail: Failed to send the SERVICE_CONTROL_STOP signal to the service.
Its current state is SERVICE_RUNNING. Failed with:  A stop control has been sent to a service that other running services are dependent on.
Error: /Stage[main]/Datadog_agent::Windows/Service[datadogagent]: Failed to transition the datadogagent service to the SERVICE_STOPPED state. Detail: Failed to send the SERVICE_CONTROL_STOP signal to the service. Its current state is SER
VICE_RUNNING. Failed with:  A stop control has been sent to a service that other running services are dependent on.

This appears to be because the service resource in puppet doesn't manage dependant services, and so just gets returned a state it can't deal with.

As it stands, without forking and managing the module myself, I can't see how best to resolve this. There are no built in params to avoid the module managing the agent's service state (so that I could manage it externally with a script).

Has this use case been covered before and I'm missing something?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions