Skip to content

Unable to parse JSON as proto (INVALID_ARGUMENT: could not find @type 'type.googleapis.com/envoy.config.trace.v3.DatadogConfig'): #31649

Description

@sujeets-toast

Issue Template

Datadog not working in windows container as sidecar. I used as Linux container it's working for me.

Description:
I am trying to run envoy, Datadog and dotnet application as sidecar. I am able to create the and run the container with envoy as sidecar without Datadog. But when adding the Datadog tracing i am gating the below issue in windows container.
https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/trace/v3/datadog.proto#config-trace-v3-datadogconfig

Error:

[2024-01-04 22:42:07.291][1896][critical][main] [source/server/server.cc:141] error initializing config '  .\envoy.yaml': Unable to parse JSON as proto (INVALID_ARGUMENT: could not find @type 'type.googleapis.com/envoy.config.trace.v3.DatadogConfig'):

Full yaml

static_resources:
  listeners:
  - name: listener_0
    address:
      socket_address:
        address: 0.0.0.0
        port_value: 9902
    filter_chains:
    - filters:
      - name: envoy.filters.network.http_connection_manager
        typed_config:
          "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
          generate_request_id: true
          request_id_extension:
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.request_id.uuid.v3.UuidRequestIdConfig
              use_request_id_for_trace_sampling: false
          tracing:
            provider:
              name: envoy.tracers.datadog
              typed_config:
                "@type": type.googleapis.com/envoy.config.trace.v3.DatadogConfig
                collector_cluster: datadog_agent
                service_name: sa-envoy-proxy-web-service
          access_log:
          - name: envoy.access_loggers.stdout
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.access_loggers.stream.v3.StdoutAccessLog
              # path: /dev/stdout
              # log_format:
              #   text_format_source:
              #     inline_string: "[%START_TIME%] \"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH):256% %PROTOCOL%\" %RESPONSE_CODE% %RESPONSE_FLAGS% %BYTES_RECEIVED% %BYTES_SENT% %DURATION% %RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)% \"%REQ(X-FORWARDED-FOR)%\" \"%REQ(USER-AGENT)%\" \"%REQ(X-REQUEST-ID)%\" \"%REQ(:AUTHORITY)%\" \"%UPSTREAM_HOST%\" \"%RESP(X-AMZN-RequestId)%\" \"%REQ(X-DATADOG-TRACE-ID)%\" \"%REQ(X-DATADOG-PARENT-ID)%\"\n"
          codec_type: auto
          stat_prefix: ingress_http
          route_config:
            name: local_route
            virtual_hosts:
            - name: backend_service
              domains:
              - "*"
              routes:
                - match:
                    prefix: "/"
                  route:
                    cluster: sa-envoy-proxy-cluster
          http_filters:
          - name: envoy.filters.http.health_check
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.filters.http.health_check.v3.HealthCheck
              pass_through_mode: false
              headers:
                - exact_match: /healthcheck
                  name: :path
          - name: envoy.filters.http.router
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
              suppress_envoy_headers: true
          use_remote_address: true
  clusters:
  - name: sa-envoy-proxy-cluster
    connect_timeout: 5s
    type: strict_dns
    lb_policy: round_robin
    load_assignment:
      cluster_name: sa-envoy-proxy-cluster
      endpoints:
      - lb_endpoints:
        - endpoint:
            address:
              socket_address:
                address: 172.89.194.61 # application host ip
                port_value: 80
                
  - name: datadog_agent
    connect_timeout: 5s
    type: strict_dns
    lb_policy: round_robin
    load_assignment:
      cluster_name: datadog_agent
      endpoints:
      - lb_endpoints:
        - endpoint:
            address:
              socket_address:
                address: 0.0.0.0
                port_value: 8126

admin:
  # access_log_path: "./logs/logs.txt"
  address:
    socket_address:
      address: 0.0.0.0
      port_value: 9201

Envoy Dockerfile

FROM envoyproxy/envoy-windows:v1.28-latest
# FROM envoyproxy/envoy-windows:v1.19-latest
EXPOSE 5000
EXPOSE 9201
EXPOSE 9202
COPY envoy.yaml './envoy.yaml'
COPY start_envoy.ps1 './start_envoy.ps1'
ENTRYPOINT ["powershell.exe", "./start_envoy.ps1"]

Reference Url:
https://docs.datadoghq.com/tracing/trace_collection/proxy_setup/?tab=envoy

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/tracingbugstalestalebot believes this issue/PR has not been touched recently

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions