Skip to content

report_instrumentation_configuration_status

report_instrumentation_configuration_status(
    service: str,
    environment: str,
    configurations: InstrumentationConfigurationStatusList,
    *,
    config_overrides: Optional[ApplicationSignalsClientConfig] = None,
) -> ReportInstrumentationConfigurationStatusResponse

Reports the status of one or more instrumentation configurations from SDK instances. Use this to record when configurations become ready, hit errors, become active, or are disabled by limits.

Report READY, ERROR, and DISABLED when the status changes. Report ACTIVE periodically (for example, every minute) while instrumentation is running.

Parameters:

  • service (str) –

    The service that the reported configurations belong to.

  • environment (str) –

    The environment that the service is running in.

  • configurations (InstrumentationConfigurationStatusList) –

    An array of configuration status reports (up to 100) that include the instrumentation type, signal type, location hash, status, timestamp, and optional error cause.

Raises:

Source code in docs_src/capo_application_signals/_services/application_signals.py
def report_instrumentation_configuration_status(
    self,
    service: str,
    environment: str,
    configurations: "capo_application_signals.types.instrumentation_configuration_status_list.InstrumentationConfigurationStatusList",
    *,
    config_overrides: Optional[ApplicationSignalsClientConfig] = None,
) -> "capo_application_signals.types.report_instrumentation_configuration_status_response.ReportInstrumentationConfigurationStatusResponse":
    """<p>Reports the status of one or more instrumentation configurations from SDK instances. Use this to record when configurations become ready, hit errors, become active, or are disabled by limits.</p> <p>Report <code>READY</code>, <code>ERROR</code>, and <code>DISABLED</code> when the status changes. Report <code>ACTIVE</code> periodically (for example, every minute) while instrumentation is running.</p>

    Args:
        service: <p>The service that the reported configurations belong to.</p>
        environment: <p>The environment that the service is running in.</p>
        configurations: <p>An array of configuration status reports (up to 100) that include the instrumentation type, signal type, location hash, status, timestamp, and optional error cause.</p>

    Raises:
        capo_application_signals.errors.throttling_exception.ThrottlingException: <p>The request was throttled because of quota limits.</p>
        capo_application_signals.errors.validation_exception.ValidationException: <p>The resource is not valid.</p>
        capo_application_signals.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    def _handler(
        req: "OperationRequest[capo_application_signals.types.report_instrumentation_configuration_status_request.ReportInstrumentationConfigurationStatusRequest]",
    ) -> OperationResponse[
        "capo_application_signals.types.report_instrumentation_configuration_status_response.ReportInstrumentationConfigurationStatusResponse"
    ]:
        import capo_application_signals._operations.application_signals.report_instrumentation_configuration_status

        output, http_response = (
            capo_application_signals._operations.application_signals.report_instrumentation_configuration_status.report_instrumentation_configuration_status(
                req.options, req.input
            )
        )
        return OperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides,
        OperationLogging("ReportInstrumentationConfigurationStatus"),
    )
    input_: capo_application_signals.types.report_instrumentation_configuration_status_request.ReportInstrumentationConfigurationStatusRequest = {
        "service": service,
        "environment": environment,
        "configurations": configurations,
    }

    response = execute_pipeline(
        OperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    response.response.close()
    return response.output