-
Notifications
You must be signed in to change notification settings - Fork 506
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
desc = "error reading server preface: http2: frame too large" #646
Comments
@haseeb-aziz that error message is normally hiding a deeper issue. I've seen it when not being able to communicate properly with the grpc endpoint I'm trying to send data to. Can you update your issue with your values.yaml? Which helm chart version are you using? |
@haseeb-aziz Please format your post as yaml |
This is the logs of opentelemetry pod. I'm getting this error info exporterhelper/queued_retry.go:433 Exporting failed. Will retry the request after interval. {"kind": "exporter", "data_type": "metrics", "name": "otlp", "error": "rpc error: code = Unavailable desc = connection error: desc = "error reading server preface: http2: frame too large"", "interval": "38.375612262s"} Please advise |
@TylerHelmuth Thanks values.yaml file of opentelemetry
|
@TylerHelmuth |
This looks like exporter misconfiguration. The server is not grpc or behaves weirdly? You can debug this by adding environment variable Reference: https://stackoverflow.com/a/44482155 |
This may be caused by the grpc client sending HTTP/2 to a https server. I got a similar issue when sending grpc request to a nginx grpc proxy. this got the 'http2: frame too large' error when Dial as below( had intended to ignore any SSL verification): conn, err := grpc.Dial(*addr, grpc.WithTransportCredentials(insecure.NewCredentials())) as tcpdump observed, the client sends HTTP/2 frames without TLS encryption. and the server side sends back but succeeded in this way (load the server certificate): proxyCA := "/var/tmp/fullchain.pem" // CA cert that signed the proxy
f, err := os.ReadFile(proxyCA)
p := x509.NewCertPool()
p.AppendCertsFromPEM(f)
tlsConfig := &tls.Config{
RootCAs: p,
}
conn, err := grpc.Dial(*addr, grpc.WithTransportCredentials(credentials.NewTLS(tlsConfig))) It may be not the same cause. Just for reference since I am looking for the root cause and come across this issue. |
Are there any updates on this topic? client-collector:
server-collector:
ingress:
|
use http rather then grpc. My problem resolve using http. |
@haseeb-aziz could you able to sent metrics over HTTP instead of GRPC? |
yes, Using http its working fine
…On Fri, Jul 7, 2023, 10:05 PM Veysel Şahin ***@***.***> wrote:
@haseeb-aziz <https://github.com/haseeb-aziz> could you able to sent
metrics over HTTP instead of GRPC?
—
Reply to this email directly, view it on GitHub
<#646 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ARM5EEPRKANKT6QDEMSMMODXPA6U3ANCNFSM6AAAAAAU42ACTE>
.
You are receiving this because you were mentioned.Message ID:
***@***.***
com>
|
"http2: frame too large" will happen when you try to initialize an http2 connection (using grpc, for example) to a target port which is expecting http1.1 connections. |
same error in v2rayN client. after edit config, i delete the fingerprint input (which used to be "chrome"). the error gone. |
you are trying connecting to http/2 over http, try again with tls connection with insecure_skip_verify = true |
I have the same issue, my grpc server use a nginx proxy that have TLS. grpcClientConn, err := grpc.Dial(os.Getenv("GRPC_SERVER_ADDR"), grpc.WithTransportCredentials(credentials.NewTLS(&tls.Config{}))) instead of conn, err := grpc.Dial(*addr, grpc.WithTransportCredentials(insecure.NewCredentials())) |
Hi guys, I have also faced with the same issue.
Ingress configuration :
Opentelemetry collector config below:
verified such configuration with local tempo-distributor service (sending traces directly via Opentelemetry collector to tempo-distributor port 4317 service without ingress ) and everything works properly Will be appreciated for any help if somebody used such approach |
resolving it on Opentelemetry collector side
by receiving |
Ok, so in my case it was a certificate issue. Or more like Loki going through proxy, even if it shouldnt, it does not respect NO_PROXY. Once I put CA certificate to trusted cert store, and disabled skipped verification, all is good. http_config: |
Same here (AWS EKS environment). Problem solved after changing otel collector config map from:
to:
|
I was getting this error only on production environment, local worked fine. so tldr: look your env files |
Hello
I’m getting this error “Err: connection error: desc = "error reading server preface: http2: frame too large" {"grpc_log": true}” when I use this configuration in eks-kubernetes-cluster.
But same configuration when i use successfully export prometheus metrics to uptrace without eks kubernetes cluster
Configuration:
prometheus_simple:
collection_interval: 10s
endpoint: '10.XXX.XX.XXX:9090'
metrics_path: '/metrics'
use_service_account: false
tls_enabled: false
exporters:
otlp:
endpoint: 10.XXX.X.XX:14317
headers: { 'uptrace-dsn': 'http://[email protected]:14317/2' }
tls:
insecure: true
The text was updated successfully, but these errors were encountered: