ydb-platform / jaeger-ydb-store Goto Github PK
View Code? Open in Web Editor NEWLicense: MIT License
License: MIT License
Here's an example of a working config for schema-watcher:
ydb.sa.meta-auth: "true"
ydb_write_timeout: 10s
ydb.address: lb.cc80**********chgq841.ydb.mdb.****.net:2135
ydb.path: /pre-prod_global/aoe***********6p/cc80***********chgq841
ydb_path: /pre-prod_global/aoe***********6p/cc80***********chgq841
watcher_age: 168h
parts_traces: "4"
parts_idx_tag: "4"
parts_idx_duration: "4"
parts_idx_service_name: "4"
parts_idx_service_op: "4"
ydb_folder: "v2"
ydb_feature_split_by_load: "true"
ydb_feature_compression: "true"
It can be clearly seen that at least ydb.path has a duplicate configuration ydb_path and both has to be supplied which is very misleading.
error log:
{
"level": "error",
"ts": 1.6781265451123023E9,
"caller": "app/span_processor.go:146",
"msg": "Failed to save span",
"error": "plugin error: rpc error: code = Unknown desc = transport error: DeadlineExceeded, message: context deadline exceeded, address: *** at github.com/ydb-platform/ydb-go-sdk/v3/internal/conn.(*conn).Invoke(conn.go:355) at github.com/ydb-platform/ydb-go-sdk/v3/internal/db.(*database).Invoke(database.go:128) at github.com/ydb-platform/ydb-go-sdk/v3/internal/table.(*session).BulkUpsert(session.go:1044) at github.com/ydb-platform/ydb-go-sdk/v3/internal/table.do.func2(retry.go:102) at github.com/ydb-platform/ydb-go-sdk/v3/internal/table.retryBackoff(retry.go:245)",
"stacktrace": "github.com/jaegertracing/jaeger/cmd/collector/app.(*spanProcessor).saveSpan\n\tgithub.com/jaegertracing/jaeger/cmd/collector/app/span_processor.go:146\ngithub.com/jaegertracing/jaeger/cmd/collector/app.ChainedProcessSpan.func1\n\tgithub.com/jaegertracing/jaeger/cmd/collector/app/model_consumer.go:35\ngithub.com/jaegertracing/jaeger/cmd/collector/app.(*spanProcessor).processItemFromQueue\n\tgithub.com/jaegertracing/jaeger/cmd/collector/app/span_processor.go:176\ngithub.com/jaegertracing/jaeger/cmd/collector/app.NewSpanProcessor.func1\n\tgithub.com/jaegertracing/jaeger/cmd/collector/app/span_processor.go:75\ngithub.com/jaegertracing/jaeger/pkg/queue.ConsumerFunc.Consume\n\tgithub.com/jaegertracing/jaeger/pkg/queue/bounded_queue.go:104\ngithub.com/jaegertracing/jaeger/pkg/queue.(*BoundedQueue).StartConsumersWithFactory.func1\n\tgithub.com/jaegertracing/jaeger/pkg/queue/bounded_queue.go:83"
}
Describe the Feature Request
Change from opentracing to opentelemetry.
Additional Context
New format was added in Jaeger v1.48
import "github.com/YandexClassifieds/jaeger-ydb-store/plugin" is obsolete.
Describe the Feature Request
Now the presence of a secure connection is hardcoded, it need to be configurable.
Describe the Feature Request
Now if there is an error with the plugin, jaeger just terminates with an error:
Unrecognized remote plugin message: \nThis usually means that the plugin is either invalid or simply\nneeds to be recompiled to support the latest protocol
Describe Preferred Solution
the context of the error should be added in order to let the user know what exactly is the problem with the plugin
Describe Alternatives
I try to start jaeger in k8s + YDB
I have problem with a collector:
{"level":"fatal","ts":1634215481.0927575,"caller":"command-line-arguments/main.go:70","msg":"Failed to init storage factory","error":"grpc-plugin builder failed to create a store: error attempting to connect to plugin rpc client: Unrecognized remote plugin message: \n\nThis usually means that the plugin is either invalid or simply\nneeds to be recompiled to support the latest protocol.","stacktrace":"main.main.func1\n\tcommand-line-arguments/main.go:70\ngithub.com/spf13/cobra.(*Command).execute\n\tgithub.com/spf13/[email protected]/command.go:762\ngithub.com/spf13/cobra.(*Command).ExecuteC\n\tgithub.com/spf13/[email protected]/command.go:852\ngithub.com/spf13/cobra.(*Command).Execute\n\tgithub.com/spf13/[email protected]/command.go:800\nmain.main\n\tcommand-line-arguments/main.go:129\nruntime.main\n\truntime/proc.go:204"
I install the jaeger with a helm-chart and use image: cr.yandex/yc/jaeger-ydb-collector:latest or cr.yandex/yc/jaeger-ydb-collector:dev
I have't problem with other components: agent, query, schema.
Describe the Feature Request
now write attempt timeout is hardcoded to 1 second. It need to be set in config.
The key can be obtained by the command:
yc iam key create \
--service-account-name <имя сервисного аккаунта для Ingress-контроллера> \
--output sa-key.json
and mounts as a secret
For example, as in external-secrets is done https://external-secrets.io/v0.5.7/provider-yandex-lockbox/
apiVersion: external-secrets.io/v1beta1
kind: SecretStore
metadata:
name: secret-store
spec:
provider:
yandexlockbox:
auth:
authorizedKeySecretRef:
name: yc-auth
key: authorized-key
Describe the Feature Request
Now port for metrics is hardcoded here.
It need to become configurable.
Describe the Feature Request
Now plugin shutdowns after jaegerGrpc.Serve()
end, but Jaeger support .Close()
method to graceful shutdown
Describe Preferred Solution
Implement .Close()
method
Additional Context
Ability to shutdown plugin was added in Jaeger 1.27 here.
Sometimes the plugin receives spans for which there is no suitable DB table because the span is too old. This causes an inconvenience as these spans fail to be saved and raise DB errors counter which in turn flashes monitoring alerts. The proposal is to have a parameter in the plugin which stands for maximum accepted span age. The default would be 0 which means every span age is good enough. In case the value is provided the span will be skipped if its start date falls beyond the maximum.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.