> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cockroachlabs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get the Log Export configuration for a cluster

> Can be used by the following roles assigned at the organization, folder or cluster scope:
- ORG_ADMIN
- CLUSTER_ADMIN
- CLUSTER_OPERATOR_WRITER
- METRICS_VIEWER
- AUDITOR


<Note>This endpoint is in **Preview** and subject to change. Refer to the [API support policy](https://www.cockroachlabs.com/docs/stable/api-support-policy) for more details.</Note>


## OpenAPI

````yaml /openapi/cloud/2024-09-16.json get /api/v1/clusters/{cluster_id}/logexport
openapi: 3.0.0
info:
  contact:
    email: support@cockroachlabs.com
    name: Cockroach Labs Support
    url: https://support.cockroachlabs.com
  description: An API for managing CockroachDB Cloud resources
  title: CockroachDB Cloud API
  version: '2024-09-16'
servers:
  - url: https://cockroachlabs.cloud
security:
  - Bearer: []
tags:
  - name: SCIM
  - name: Organizations
  - name: Clusters
  - name: Cluster Disruption
  - name: SQL Users
  - name: Databases
  - name: Customer-managed Encryption Keys
  - name: Client CA Certificates
  - name: Log Export
  - name: Metric Export
  - name: Audit Logs
  - name: IP Allowlists
  - name: Egress Rules
  - name: Billing
  - name: Maintenance Windows
  - name: Blackout Windows
  - name: Role Management
  - name: Service Accounts
  - name: API Keys
  - name: Folders
  - name: Version Deferral
  - name: JWT Issuers
  - name: Private Endpoint Services
  - name: Physical Cluster Replication
  - name: Backup/Restore
  - name: Egress Private Endpoints
  - name: Runtime Scanning
externalDocs:
  description: Use the CockroachDB Cloud API
  url: https://www.cockroachlabs.com/docs/cockroachcloud/cloud-api.html
paths:
  /api/v1/clusters/{cluster_id}/logexport:
    get:
      tags:
        - Log Export
      summary: Get the Log Export configuration for a cluster
      description: >
        Can be used by the following roles assigned at the organization, folder
        or cluster scope:

        - ORG_ADMIN

        - CLUSTER_ADMIN

        - CLUSTER_OPERATOR_WRITER

        - METRICS_VIEWER

        - AUDITOR
      operationId: CockroachCloud_GetLogExportInfo
      parameters:
        - name: cluster_id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LogExportClusterInfo'
        '400':
          description: Returned when a request field is invalid.
          content:
            application/json:
              schema: {}
        '401':
          description: Returned when the token bearer cannot be authenticated.
          content:
            application/json:
              schema: {}
        '403':
          description: >-
            Returned when the user does not have permission to access the
            resource.
          content:
            application/json:
              schema: {}
        '404':
          description: Returned when the resource does not exist.
          content:
            application/json:
              schema: {}
        '500':
          description: Server error
          content:
            application/json:
              schema: {}
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
      x-codeSamples:
        - lang: curl
          source: |-
            curl --request GET \
              --url https://cockroachlabs.cloud/api/v1/clusters/{cluster_id}/logexport \
              --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'
components:
  schemas:
    LogExportClusterInfo:
      description: |-
        LogExportClusterInfo contains a package of information that fully
        describes both the intended state of the log export configuration for
        a specific cluster but also some metadata around its deployment
        status, any error messages, and some timestamps.
      type: object
      properties:
        cluster_id:
          type: string
        created_at:
          type: string
          format: date-time
        delivery_status:
          $ref: '#/components/schemas/LogExportDeliveryStatus'
        delivery_status_message:
          description: >-
            Descriptive error message when delivery_status is
            DELIVERY_UNHEALTHY.

            Only populated for OTLP_HTTP sinks.
          type: string
        spec:
          $ref: '#/components/schemas/LogExportClusterSpecification'
        status:
          $ref: '#/components/schemas/LogExportStatus'
        updated_at:
          type: string
          format: date-time
        user_message:
          type: string
    Status:
      type: object
      properties:
        code:
          format: int32
          type: integer
        details:
          type: array
          items:
            $ref: '#/components/schemas/Any'
        message:
          type: string
    LogExportDeliveryStatus:
      description: >-
        LogExportDeliveryStatus reports whether logs are reaching the customer's

        destination. This is independent of LogExportStatus, which reports
        whether

        the integration is configured and running. Delivery health is currently

        reported only for OTLP_HTTP sinks.

         - DELIVERY_HEALTHY: The destination is receiving log records normally.
         - DELIVERY_UNHEALTHY: The destination is rejecting or failing to receive a substantial fraction
        of log records. The cause is intentionally not distinguished — it may be

        invalid credentials, a wrong endpoint, or a transient outage.
      type: string
      enum:
        - DELIVERY_HEALTHY
        - DELIVERY_UNHEALTHY
    LogExportClusterSpecification:
      description: |-
        LogExportClusterSpecification contains all the data necessary to
        configure log export for an individual cluster. Users would supply
        this data via the API and also receive it back when inspecting the
        state of their log export configuration.
      type: object
      properties:
        auth_principal:
          description: >-
            auth_principal is used in different contexts based on integration.

            CloudWatch: AWS Role ARN that identifies a role

            that the cluster account can assume to write to CloudWatch

            GCP Cloud Logging: GCP Project ID that the cluster service account

            has permissions to write to for cloud logging.

            Azure Log Analytics (AZURE_LOG_ANALYTICS): CustomerID or
            WorkspaceID.

            This field is empty for AZURE_LOG_ANALYTICS_V2 and OTLP_HTTP.
            OTLP_HTTP

            authenticates using the headers supplied when the integration is
            enabled.
          type: string
        aws_external_id:
          description: >-
            aws_external_id, if set, is included when assuming the IAM role.
            Supported for

            Advanced clusters on AWS only.
          type: string
        azure_client_id:
          description: >-
            Azure client ID for the app registration used by the Logs Ingestion
            API.
          type: string
        azure_client_secret:
          description: >-
            Azure client secret for the app registration used by the Logs
            Ingestion API.
          type: string
        azure_dce_endpoint:
          description: >-
            Logs ingestion endpoint of the Azure Data Collection Endpoint (DCE).
            For

            example, https://{dce-name}.{region}.ingest.monitor.azure.com.
          type: string
        azure_dcr_immutable_id:
          description: >-
            Immutable ID of the Azure Data Collection Rule (DCR), for example
            dcr-...
          type: string
        azure_dcr_resource_id:
          description: >-
            Full ARM resource ID of the Azure Data Collection Rule (DCR).
            Cockroach

            Cloud reads and updates this DCR to add streams for each configured
            log

            group. For example,

            /subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.Insights/dataCollectionRules/{dcr-name}.
          type: string
        azure_shared_key:
          description: >-
            The primary or the secondary connected sources client authentication
            key.

            This is used to export logs to Azure Log Analytics via the legacy

            HTTP Data Collector API. Deprecated: use azure_client_secret
            instead.
          type: string
        azure_tenant_id:
          description: >-
            Azure tenant ID for the app registration used by the Logs Ingestion
            API.
          type: string
        azure_workspace_resource_id:
          description: >-
            Full ARM resource ID of the Log Analytics workspace. Cockroach Cloud
            creates

            or updates the required custom tables for each configured log group.
            For

            example,
            /subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.OperationalInsights/workspaces/{workspace-name}.
          type: string
        groups:
          description: |-
            groups is a collection of log group configurations to customize
            which CRDB channels get aggregated into different groups at the
            target sink. Unconfigured channels will be sent to the default
            locations using the top-level log export settings.
          type: array
          items:
            $ref: '#/components/schemas/LogExportGroup'
        log_name:
          description: >-
            log_name is an identifier for the logs in the customer's log sink.
            For

            AZURE_LOG_ANALYTICS_V2, it must start with a letter and contain only

            letters, digits, and underscores.
          type: string
        omitted_channels:
          description: >-
            omitted_channels is a list of channels that the user does not want
            to

            export logs for.
          type: array
          items:
            type: string
        otlp_endpoint:
          description: >-
            otlp_endpoint is the OTLP/HTTP URL for the OTLP_HTTP sink type.

            This field accepts either a base endpoint or a full /v1/logs
            endpoint.
          type: string
        otlp_header_names:
          description: >-
            otlp_header_names lists the configured OTLP auth header names;
            values are

            never returned.
          type: array
          items:
            type: string
        redact:
          description: |-
            redact controls whether logs are redacted before forwarding to
            customer sinks. By default they are not redacted.
          type: boolean
        region:
          description: |-
            region controls whether all logs are sent to a specific region in
            the customer sink. By default, logs will remain their region of
            origin depending on the cluster node's region.
          type: string
        type:
          $ref: '#/components/schemas/LogExportType'
    LogExportStatus:
      description: |-
        LogExportStatus encodes the possible states that a configuration can
        be in as it is created, deployed, and disabled.
      type: string
      enum:
        - DISABLED
        - DISABLING
        - DISABLE_FAILED
        - ENABLED
        - ENABLING
        - ENABLE_FAILED
        - CREDENTIALS_ERROR
    Any:
      description: >-
        `Any` contains an arbitrary serialized protocol buffer message along
        with a

        URL that describes the type of the serialized message.


        In its binary encoding, an `Any` is an ordinary message; but in other
        wire

        forms like JSON, it has a special encoding. The format of the type URL
        is

        described on the `type_url` field.


        Protobuf APIs provide utilities to interact with `Any` values:


        - A 'pack' operation accepts a message and constructs a generic `Any`
        wrapper
          around it.
        - An 'unpack' operation reads the content of an `Any` message, either
        into an
          existing message or a new one. Unpack operations must check the type of the
          value they unpack against the declared `type_url`.
        - An 'is' operation decides whether an `Any` contains a message of the
        given
          type, i.e. whether it can 'unpack' that type.

        The JSON format representation of an `Any` follows one of these cases:


        - For types without special-cased JSON encodings, the JSON format
          representation of the `Any` is the same as that of the message, with an
          additional `@type` field which contains the type URL.
        - For types with special-cased JSON encodings (typically called
        'well-known'
          types, listed in https://protobuf.dev/programming-guides/json/#any), the
          JSON format representation has a key `@type` which contains the type URL
          and a key `value` which contains the JSON-serialized value.

        The text format representation of an `Any` is like a message with one
        field

        whose name is the type URL in brackets. For example, an `Any` containing
        a

        `foo.Bar` message may be written `[type.googleapis.com/foo.Bar] { a: 2
        }`.
      type: object
      properties:
        '@type':
          description: >-
            Identifies the type of the serialized Protobuf message with a URI
            reference

            consisting of a prefix ending in a slash and the fully-qualified
            type name.


            Example: type.googleapis.com/google.protobuf.StringValue


            This string must contain at least one `/` character, and the content
            after

            the last `/` must be the fully-qualified name of the type in
            canonical

            form, without a leading dot. Do not write a scheme on these URI
            references

            so that clients do not attempt to contact them.


            The prefix is arbitrary and Protobuf implementations are expected to

            simply strip off everything up to and including the last `/` to
            identify

            the type. `type.googleapis.com/` is a common default prefix that
            some

            legacy implementations require. This prefix does not indicate the
            origin of

            the type, and URIs containing it are not expected to respond to any

            requests.


            All type URL strings must be legal URI references with the
            additional

            restriction (for the text format) that the content of the reference

            must consist only of alphanumeric characters, percent-encoded
            escapes, and

            characters in the following set (not including the outer backticks):

            `/-.~_!$&()*+,;=`. Despite our allowing percent encodings,
            implementations

            should not unescape them to prevent confusion with existing parsers.
            For

            example, `type.googleapis.com%2FFoo` should be rejected.


            In the original design of `Any`, the possibility of launching a type

            resolution service at these type URLs was considered but Protobuf
            never

            implemented one and considers contacting these URLs to be
            problematic and

            a potential security issue. Do not attempt to contact type URLs.
          type: string
      additionalProperties: {}
    LogExportGroup:
      description: |-
        LogExportGroup contains an export configuration for a single
        log group which can route logs for a subset of CRDB channels.
      type: object
      properties:
        channels:
          description: |-
            channels is a list of CRDB log channels to include in this
            group.
          type: array
          items:
            type: string
        enable_sending_queue:
          description: |-
            enable_sending_queue enables the sending queue for logs in this
            group. Only one group can have enable_sending_queue enabled.
          type: boolean
        log_name:
          description: |-
            log_name is the name of the group, reflected in the log sink. For
            AZURE_LOG_ANALYTICS_V2, it must start with a letter and contain only
            letters, digits, and underscores.
          type: string
        min_level:
          $ref: '#/components/schemas/LogLevel.Type'
        redact:
          description: |-
            redact is a boolean that governs whether this log group
            should aggregate redacted logs. Redaction settings will
            inherit from the cluster log export defaults if unset.
          type: boolean
      required:
        - log_name
        - channels
    LogExportType:
      description: >-
        LogExportType identifies the destination used for exported logs.

        Cloud-native destinations use their provider's logging service, while

        OTLP_HTTP sends logs to a customer-configured OTLP/HTTP endpoint.

         - AZURE_LOG_ANALYTICS: AZURE_LOG_ANALYTICS is the legacy Azure export path via the HTTP Data
        Collector API (retiring 2026-09-14). Deprecated: use

        AZURE_LOG_ANALYTICS_V2 instead.
         - AZURE_LOG_ANALYTICS_V2: AZURE_LOG_ANALYTICS_V2 exports to Azure Monitor via the Logs Ingestion API
        and DCR-based ingestion, replacing the deprecated AZURE_LOG_ANALYTICS
        path

        that uses the HTTP Data Collector API (retiring 2026-09-14). V2
        authenticates

        with a tenant/client/secret + DCR endpoint and rule, whereas the legacy
        type

        uses a workspace ID + shared key.
      type: string
      enum:
        - AWS_CLOUDWATCH
        - GCP_CLOUD_LOGGING
        - AZURE_LOG_ANALYTICS
        - AZURE_LOG_ANALYTICS_V2
        - OTLP_HTTP
    LogLevel.Type:
      description: |2-
         - UNSPECIFIED: The unspecified log level includes all logs.
         - WARNING: The WARNING severity is used for situations which may require
        special handling, where normal operation is expected to resume
        automatically.
         - ERROR: The ERROR severity is used for situations that require special
        handling, where normal operation could not proceed as expected.
        Other operations can continue mostly unaffected.
         - FATAL: The FATAL severity is used for situations that require an
        immediate, hard server shutdown. A report is also sent to
        telemetry if telemetry is enabled.
      type: string
      enum:
        - UNSPECIFIED
        - WARNING
        - ERROR
        - FATAL
  securitySchemes:
    Bearer:
      type: http
      scheme: bearer

````