ThalysonR opened a new issue, #9270:
URL: https://github.com/apache/apisix/issues/9270

   ### Description
   
   I've been testing apisix and tried using otel plugin while transcoding to 
grpc and got an error. I did try using the otel plugin with http and it works 
fine, so I assume the problem is with the 2 plugins working together. This is 
the error i got:
   ```
    2023/04/08 05:21:57 [error] 56#56: *4242 lua entry thread aborted: runtime 
error: ...deps/share/lua/5.1/opentelemetry/trace/exporter/otlp.lua:104: bad 
argument #1 to 'encode' (type 'opentelemetry.proto.trace.v1.TracesData' does 
not exists)
    stack traceback:
    coroutine 0:
           [C]: in function 'encode'
           ...deps/share/lua/5.1/opentelemetry/trace/exporter/otlp.lua:104: in 
function 'export_spans'
           ...are/lua/5.1/opentelemetry/trace/batch_span_processor.lua:45: in 
function 'process_batches'
           ...are/lua/5.1/opentelemetry/trace/batch_span_processor.lua:77: in 
function <...are/lua/5.1/opentelemetry/trace/batch_span_processor.lua:57>, 
context: ngx.timer, client: 172.20.0.1, server: 0.0.0.0:9080
   ```
   
   This is my config:
   ```
   # config.yaml
   plugins:
     - grpc-transcode
     - opentelemetry
   
     opentelemetry:
       resource:
         service.name: APISIX
         tenant.id: business_id
       collector:
         address: otel-collector:4318
         request_timeout: 3
         request_headers:
           foo: bar
       batch_span_processor:
         drop_on_queue_full: false
         max_queue_size: 6
         batch_timeout: 2
         inactive_timeout: 1
         max_export_batch_size: 2
   ```
   ```
   # apisix.yaml
   routes:
     - id: users
       methods: [GET]
       uri: /users
       plugins:
         grpc-transcode:
           proto_id: "1"
           service: users.UsersService
           method: FindAll
         opentelemetry:
           sampler:
             name: always_on
       upstream:
         scheme: grpc
         type: roundrobin
         nodes:
           "users:5000": 1
   ```
   The transcoding part works fine, I'm able to get the expected response from 
the grpc service, just missing the otel trace.
   Am I maybe using the plugins incorrectly?
   
   ### Environment
   
   - APISIX version (run `apisix version`): 3.2.0 docker image
   - Operating system (run `uname -a`): Ubuntu WSL2
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to