Code Monkey home page Code Monkey logo

mnadeem / boot-opentelemetry-tempo Goto Github PK

View Code? Open in Web Editor NEW
185.0 185.0 76.0 54.98 MB

Project demonstrating Complete Observability Stack utilizing Prometheus, Loki (For distributed logging), Tempo (For Distributed tracing, this basically uses Jaeger Internally), Grafana for Java/spring based applications (With OpenTelemetry auto / manual Instrumentation) involving multiple microservices with DB interactions

Home Page: https://reachmnadeem.wordpress.com/2021/03/04/observability-for-java-spring-based-applications-using-opentelemetry/

Dockerfile 18.50% Java 75.54% Shell 5.96%

boot-opentelemetry-tempo's People

Contributors

ctyytc avatar gcatanese avatar gvisoc avatar mnadeem avatar snoerenberg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

boot-opentelemetry-tempo's Issues

loki-> jaeger [[email protected]+incompatible/reporter.go]

Hello,

I am trying to run your demo, i think it's great!
I am using main git branch
As a user,

[vagrant@fedora boot-opentelemetry-tempo]$ docker-compose up

checking dockers ..

[vagrant@fedora boot-opentelemetry-tempo]$ docker ps
CONTAINER ID   IMAGE                                              COMMAND                  CREATED          STATUS          PORTS                                                                                                                                                                                    NAMES
387377145b68   grafana/grafana:7.4.0-ubuntu                       "/run.sh"                56 minutes ago   Up 43 seconds   0.0.0.0:3000->3000/tcp, :::3000->3000/tcp                                                                                                                                                boot-opentelemetry-tempo_grafana_1
4af1c2b2156d   grafana/promtail:2.2.0                             "/usr/bin/promtail -…"   56 minutes ago   Up 43 seconds                                                                                                                                                                                            boot-opentelemetry-tempo_promtail_1
9df372e9b436   prom/prometheus:latest                             "/bin/prometheus --c…"   56 minutes ago   Up 43 seconds   0.0.0.0:9090->9090/tcp, :::9090->9090/tcp                                                                                                                                                boot-opentelemetry-tempo_prometheus_1
699cf488dc37   mnadeem/boot-otel-tempo-api:0.0.1-SNAPSHOT         "sh /app/bin/start-a…"   56 minutes ago   Up 44 seconds   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp                                                                                                                                                boot-opentelemetry-tempo_boot-otel-tempo-api_1
c7a113f40b01   mnadeem/boot-otel-tempo-provider1:0.0.1-SNAPSHOT   "sh /app/bin/start-a…"   56 minutes ago   Up 44 seconds   0.0.0.0:8090->8090/tcp, :::8090->8090/tcp                                                                                                                                                boot-opentelemetry-tempo_boot-otel-tempo-provider1_1
7bb1454e015f   dpage/pgadmin4                                     "/entrypoint.sh"         56 minutes ago   Up 44 seconds   443/tcp, 0.0.0.0:7070->80/tcp, :::7070->80/tcp                                                                                                                                           boot-opentelemetry-tempo_pgadmin_1
40e01d4ef144   grafana/tempo-query:0.7.0                          "/go/bin/query-linux…"   56 minutes ago   Up 44 seconds   0.0.0.0:16686->16686/tcp, :::16686->16686/tcp                                                                                                                                            boot-opentelemetry-tempo_tempo-query_1
91464ff22136   postgres                                           "docker-entrypoint.s…"   56 minutes ago   Up 44 seconds   0.0.0.0:5432->5432/tcp, :::5432->5432/tcp                                                                                                                                                boot-opentelemetry-tempo_provider1-db_1
6c518fb52f80   grafana/tempo:0.7.0                                "/tempo -config.file…"   56 minutes ago   Up 44 seconds   0.0.0.0:14250->14250/tcp, :::14250->14250/tcp, 0.0.0.0:14268->14268/tcp, :::14268->14268/tcp, 0.0.0.0:55680->55680/tcp, :::55680->55680/tcp, 0.0.0.0:3102->3100/tcp, :::3102->3100/tcp   boot-opentelemetry-tempo_tempo_1
c416a8970576   mnadeem/volume_exporter                            "/bin/volume_exporte…"   56 minutes ago   Up 45 seconds   0.0.0.0:9889->9888/tcp, :::9889->9888/tcp                                                                                                                                                boot-opentelemetry-tempo_volume_exporter_1
2208cc1c597e   grafana/loki:2.2.0                                 "/usr/bin/loki -conf…"   56 minutes ago   Up 44 seconds   0.0.0.0:3101->3100/tcp, :::3101->3100/tcp                                                                                                                                                boot-opentelemetry-tempo_loki_1
[vagrant@fedora boot-opentelemetry-tempo]$

I can do sql "insert" into postgres, ok ..
I can get a web resquest-response

[
{
"origin": "SEA",
"destination": "LAS",
"airline": "Deltoid",
"departureTime": "2020-12-01T18:10:00.000+00:00"
},
{
"origin": "SEA",
"destination": "LAS",
"airline": "Unitely",
"departureTime": "2020-12-01T19:25:00.000+00:00"
},
{
"origin": "SEA",
"destination": "LAS",
"airline": "Pan-Um",
"departureTime": "2020-12-01T15:15:00.000+00:00"
}
]

Console messages show that there is somethings running ok

loki_1                       | level=info ts=2023-01-25T09:50:08.153612696Z caller=table_manager.go:476 msg="creating table" table=index_18981
loki_1                       | level=info ts=2023-01-25T09:50:08.153619912Z caller=table_manager.go:476 msg="creating table" table=index_19075
loki_1                       | level=info ts=2023-01-25T09:50:08.153629425Z caller=table_manager.go:476 msg="creating table" table=index_19167
loki_1                       | level=info ts=2023-01-25T09:50:08.153634125Z caller=table_manager.go:476 msg="creating table" table=index_19314
loki_1                       | level=info ts=2023-01-25T09:50:08.153638346Z caller=table_manager.go:476 msg="creating table" table=index_19361
loki_1                       | level=info ts=2023-01-25T09:50:08.153642468Z caller=table_manager.go:476 msg="creating table" table=index_18714
loki_1                       | level=info ts=2023-01-25T09:50:08.153646605Z caller=table_manager.go:476 msg="creating table" table=index_18894
loki_1                       | level=info ts=2023-01-25T09:50:08.153650688Z caller=table_manager.go:476 msg="creating table" table=index_18933
loki_1                       | level=info ts=2023-01-25T09:50:08.15365477Z caller=table_manager.go:476 msg="creating table" table=index_19216
loki_1                       | level=info ts=2023-01-25T09:50:08.153663394Z caller=table_manager.go:476 msg="creating table" table=index_18588
loki_1                       | level=info ts=2023-01-25T09:50:08.153670899Z caller=table_manager.go:476 msg="creating table" table=index_18939
loki_1                       | level=info ts=2023-01-25T09:50:08.153675518Z caller=table_manager.go:476 msg="creating table" table=index_19014
tempo_1                      | level=info ts=2023-01-25T09:50:08.183434929Z caller=compactor.go:91 msg="starting compaction cycle" tenantID=single-tenant offset=0
tempo_1                      | level=info ts=2023-01-25T09:50:08.183468568Z caller=compactor.go:95 msg="compaction cycle complete. No more blocks to compact" tenantID=single-tenant
tempo_1                      | level=info ts=2023-01-25T09:50:38.183476029Z caller=compactor.go:91 msg="starting compaction cycle" tenantID=single-tenant offset=0
tempo_1                      | level=info ts=2023-01-25T09:50:38.183556963Z caller=compactor.go:95 msg="compaction cycle complete. No more blocks to compact" tenantID=single-tenant
boot-otel-tempo-api_1        | 2023-01-25 03:50:45.028  INFO [boot-otel-tempo-api,f0ba2bd160dca1f79ed6ccf0d0b8135d,aacf0ccfaaccffaf] 7 --- [nio-8080-exec-1] i.o.example.flight.FlightController      : Before Service Method Call
boot-otel-tempo-api_1        | 2023-01-25 03:50:45.028  INFO [boot-otel-tempo-api,f0ba2bd160dca1f79ed6ccf0d0b8135d,aacf0ccfaaccffaf] 7 --- [nio-8080-exec-1] i.o.example.flight.FlightService         : Getting flights for "SEA"
boot-otel-tempo-api_1        | 2023-01-25 03:50:45.029  INFO [boot-otel-tempo-api,f0ba2bd160dca1f79ed6ccf0d0b8135d,ae7ab8e6bccd017b] 7 --- [nio-8080-exec-1] i.o.example.flight.FlightClient          : Getting Flights from http://boot-otel-tempo-provider1:8090/flights
boot-otel-tempo-provider1_1  | 2023-01-25 03:50:45.033  INFO [boot-otel-tempo-provider1,f0ba2bd160dca1f79ed6ccf0d0b8135d,a764d501bf0e2483] 7 --- [io-8090-exec-10] i.o.example.flight.FlighController       : processing Request
boot-otel-tempo-provider1_1  | 2023-01-25 03:50:45.033  INFO [boot-otel-tempo-provider1,f0ba2bd160dca1f79ed6ccf0d0b8135d,519e77d05f580ee9] 7 --- [io-8090-exec-10] i.o.example.flight.FlightService         : Doing some work In New span
boot-otel-tempo-api_1        | 2023-01-25 03:50:45.040  INFO [boot-otel-tempo-api,f0ba2bd160dca1f79ed6ccf0d0b8135d,4b36a7c39b9ca986] 7 --- [nio-8080-exec-1] i.o.example.flight.FlightService         : Doing some work In New span
loki_1                       | level=info ts=2023-01-25T09:51:08.142503097Z caller=table_manager.go:208 msg="syncing tables"
loki_1                       | level=info ts=2023-01-25T09:51:08.147230987Z caller=table_manager.go:171 msg="uploading tables"
loki_1                       | level=info ts=2023-01-25T09:51:08.147296101Z caller=table.go:336 msg="uploading table index_19382"
loki_1                       | level=info ts=2023-01-25T09:51:08.147306867Z caller=table.go:363 msg="finished uploading table index_19382"
loki_1                       | level=info ts=2023-01-25T09:51:08.147311227Z caller=table.go:421 msg="cleaning up unwanted dbs from table index_19382"
tempo_1                      | level=info ts=2023-01-25T09:51:08.183746382Z caller=compactor.go:91 msg="starting compaction cycle" tenantID=single-tenant offset=0
tempo_1                      | level=info ts=2023-01-25T09:51:08.183771985Z caller=compactor.go:95 msg="compaction cycle complete. No more blocks to compact" tenantID=single-tenant
provider1-db_1               | 2023-01-25 09:51:08.192 UTC [27] LOG:  checkpoint starting: time
tempo_1                      | level=info ts=2023-01-25T09:51:08.209778748Z caller=flush.go:256 msg="flushing block" userid=single-tenant block=2c376cae-b17a-4cf4-a41c-1593cbe51812
provider1-db_1               | 2023-01-25 09:51:08.221 UTC [27] LOG:  checkpoint complete: wrote 3 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.001 s, sync=0.023 s, total=0.029 s; sync files=2, longest=0.021 s, average=0.012 s; distance=0 kB, estimate=0 kB

and again

boot-otel-tempo-api_1        | 2023-01-25 03:52:30.820  INFO [boot-otel-tempo-api,e00a373d52614d324a56f23cd91dd564,eb88cd7496af3413] 7 --- [nio-8080-exec-5] i.o.example.flight.FlightController      : Before Service Method Call
boot-otel-tempo-api_1        | 2023-01-25 03:52:30.820  INFO [boot-otel-tempo-api,e00a373d52614d324a56f23cd91dd564,eb88cd7496af3413] 7 --- [nio-8080-exec-5] i.o.example.flight.FlightService         : Getting flights for "SEA"
boot-otel-tempo-api_1        | 2023-01-25 03:52:30.821  INFO [boot-otel-tempo-api,e00a373d52614d324a56f23cd91dd564,c18b60005f6f3a67] 7 --- [nio-8080-exec-5] i.o.example.flight.FlightClient          : Getting Flights from http://boot-otel-tempo-provider1:8090/flights
boot-otel-tempo-provider1_1  | 2023-01-25 03:52:30.827  INFO [boot-otel-tempo-provider1,e00a373d52614d324a56f23cd91dd564,41b8c42ba1bc195b] 7 --- [io-8090-exec-10] i.o.example.flight.FlighController       : processing Request
boot-otel-tempo-provider1_1  | 2023-01-25 03:52:30.827  INFO [boot-otel-tempo-provider1,e00a373d52614d324a56f23cd91dd564,80270a556d6a59c4] 7 --- [io-8090-exec-10] i.o.example.flight.FlightService         : Doing some work In New span
boot-otel-tempo-api_1        | 2023-01-25 03:52:30.833  INFO [boot-otel-tempo-api,e00a373d52614d324a56f23cd91dd564,b7a2906447b9ad7b] 7 --- [nio-8080-exec-5] i.o.example.flight.FlightService         : Doing some work In New span
tempo_1                      | level=info ts=2023-01-25T09:52:38.183271501Z caller=compactor.go:91 msg="starting compaction cycle" tenantID=single-tenant offset=0
tempo_1                      | level=info ts=2023-01-25T09:52:38.183332092Z caller=compactor.go:95 msg="compaction cycle complete. No more blocks to compact" tenantID=single-tenant

Running tempo, i cannot get anything, it only shows:


tempo_1                      | level=info ts=2023-01-25T09:49:08.184133771Z caller=compactor.go:91 msg="starting compaction cycle" tenantID=single-tenant offset=0
tempo_1                      | level=info ts=2023-01-25T09:49:08.184275657Z caller=compactor.go:95 msg="compaction cycle complete. No more blocks to compact" tenantID=single-tenant
tempo_1                      | level=error ts=2023-01-25T09:49:08.311343846Z caller=frontend_processor.go:59 msg="error processing requests" address=127.0.0.1:9095 err="rpc error: code = Unavailable desc = transport is closing"
tempo_1                      | level=error ts=2023-01-25T09:49:08.311410872Z caller=frontend_processor.go:59 msg="error processing requests" address=127.0.0.1:9095 err="rpc error: code = Unavailable desc = transport is closing"
tempo_1                      | level=error ts=2023-01-25T09:49:08.311407186Z caller=frontend_processor.go:59 msg="error processing requests" address=127.0.0.1:9095 err="rpc error: code = Unavailable desc = transport is closing"
tempo_1                      | level=error ts=2023-01-25T09:49:08.311434239Z caller=frontend_processor.go:59 msg="error processing requests" address=127.0.0.1:9095 err="rpc error: code = Unavailable desc = transport is closing"
tempo_1                      | level=error ts=2023-01-25T09:49:08.311450076Z caller=frontend_processor.go:59 msg="error processing requests" address=127.0.0.1:9095 err="rpc error: code = Unavailable desc = transport is closing"
tempo_1                      | level=info ts=2023-01-25T09:49:38.183278219Z caller=compactor.go:91 msg="starting compaction cycle" tenantID=single-tenant offset=0
tempo_1                      | level=info ts=2023-01-25T09:49:38.183351782Z caller=compactor.go:95 msg="compaction cycle complete. No more blocks to compact" tenantID=single-tenant

It shows:

Then, if i use jaeger, put a traceid, response is empty and lokie shows:

tempo-query_1                | {"level":"error","ts":1674639544.7755914,"caller":"zap/logger.go:33","msg":"failed to flush Jaeger spans to server: write udp 127.0.0.1:46646->127.0.0.1:6831: write: connection refused","stacktrace":"github.com/uber/jaeger-client-go/log/zap.(*Logger).Error\n\tgithub.com/uber/[email protected]+incompatible/log/zap/logger.go:33\ngithub.com/uber/jaeger-client-go.(*remoteReporter).processQueue.func1\n\tgithub.com/uber/[email protected]+incompatible/reporter.go:288\ngithub.com/uber/jaeger-client-go.(*remoteReporter).processQueue\n\tgithub.com/uber/[email protected]+incompatible/reporter.go:298"}

And, jaeger info is empty ...

what am i doing wrong?

Tx

PD

loki is ok ( it seems that loki doesn't like touching 'job string':
image

Temp seems ok:
image

Prometheus ok:
image

Jaeger ... [no service]

image

Requesting using url browser, runs ok ... http://localhost:6650/trace/5ad80347b409a4b5d9aa7317c4e7ca3c
image

"library initialization failed - unable to allocate file descriptor table - out of memory"

Due to Java 8 being unable to pre-allocate memory for an unlimited number of open files, the spring boot containers exit on an out of memory error.

This is common in recent Linux systems with Java 8 and is caused, presumably, due to updates into the alpine base image.

The solutions are, either:

  1. Upgrade Java version, which can lead to changes in the code.
  2. Specify a decent, but limited, number of maximum open files for the bash session that would run the java applications.

A pull request with (2), with a small change to this repo, is coming your way @mnadeem --not sure what branch is the appropriate, but the change is minimal even if you don't merge the PR.

Jeger this race is not available

Hi I am trying to run the code and not able to find trace in Jager.

boot-otel-tempo-api_1 | [grpc-default-executor-0] WARN io.opentelemetry.exporter.jaeger.JaegerGrpcSpanExporter - Failed to export spans
boot-otel-tempo-api_1 | io.grpc.StatusRuntimeException: UNKNOWN: DoBatch: InstancesCount <= 0
boot-otel-tempo-api_1 | at io.grpc.Status.asRuntimeException(Status.java:534)
boot-otel-tempo-api_1 | at io.grpc.stub.ClientCalls$UnaryStreamToFuture.onClose(ClientCalls.java:533)
boot-otel-tempo-api_1 | at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:617)
boot-otel-tempo-api_1 | at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:70)

Temo also showing the error-
boot-otel-tempo-provider1_1 | at java.lang.Thread.run(Thread.java:748)
tempo_1 | level=error ts=2022-01-24T04:12:33.9494974Z caller=log.go:27 msg="pusher failed to consume trace data" err="DoBatch: InstancesCount <= 0"
loki_1 | level=info ts=2022-01-24T04:12:34.0035513Z caller=table_manager.go:171 msg="uploading tables"
loki_1 | level=info ts=2022-01-24T04:12:34.0430109Z caller=table_manager.go:208 msg="syncing tables"
tempo_1 | level=error ts=2022-01-24T04:12:34.1460915Z caller=log.go:27 msg="pusher failed to consume trace data" err="DoBatch: InstancesCount <= 0"
tempo_1 | level=error ts=2022-01-24T04:12:37.7995944Z caller=log.go:27 msg="pusher failed to consume trace data" err="DoBatch: InstancesCount <= 0"
bo

image

image

Loki container getting exited

Docker Container Logs
level=error ts=2021-06-25T05:45:01.085827282Z caller=log.go:106 msg="error running loki" err="mkdir /tmp/loki/chunks: permission denied\nerror initialising module: table-manager\ngithub.com/cortexproject/cortex/pkg/util/modules.(*Manager).initModule\n\t/src/loki/vendor/github.com/cortexproject/cortex/pkg/util/modules/modules.go:105\ngithub.com/cortexproject/cortex/pkg/util/modules.(*Manager).InitModuleServices\n\t/src/loki/vendor/github.com/cortexproject/cortex/pkg/util/modules/modules.go:75\ngithub.com/grafana/loki/pkg/loki.(*Loki).Run\n\t/src/loki/pkg/loki/loki.go:220\nmain.main\n\t/src/loki/cmd/loki/main.go:132\nruntime.main\n\t/usr/local/go/src/runtime/proc.go:204\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1374"

Unresolved Tempo hostname; unable to fetch in grafana for traceId

Use branch: 0.15.0_basic
Stacktrace (when running docker compose up):

boot-otel-tempo-api_1 | [opentelemetry.auto.trace 2021-04-08 00:35:42:230 -0500] [grpc-default-executor-0] WARN io.opentelemetry.exporter.jaeger.JaegerGrpcSpanExporter - Failed to export spans
boot-otel-tempo-api_1 | io.grpc.StatusRuntimeException: UNAVAILABLE: Unable to resolve host tempo
boot-otel-tempo-api_1 | at io.grpc.Status.asRuntimeException(Status.java:533)
boot-otel-tempo-api_1 | at io.grpc.stub.ClientCalls$UnaryStreamToFuture.onClose(ClientCalls.java:533)
boot-otel-tempo-api_1 | at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:617)
boot-otel-tempo-api_1 | at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:70)
boot-otel-tempo-api_1 | at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:803)
boot-otel-tempo-api_1 | at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:782)
boot-otel-tempo-api_1 | at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
boot-otel-tempo-api_1 | at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:123)
boot-otel-tempo-api_1 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
boot-otel-tempo-api_1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
boot-otel-tempo-api_1 | at java.lang.Thread.run(Thread.java:748)
boot-otel-tempo-api_1 | Caused by: java.lang.RuntimeException: java.net.UnknownHostException: tempo: Name does not resolve
boot-otel-tempo-api_1 | at io.grpc.internal.DnsNameResolver.resolveAddresses(DnsNameResolver.java:223)
boot-otel-tempo-api_1 | at io.grpc.internal.DnsNameResolver.doResolve(DnsNameResolver.java:282)
boot-otel-tempo-api_1 | at io.grpc.internal.DnsNameResolver$Resolve.run(DnsNameResolver.java:318

loki start failed

loki_1                         | level=info ts=2021-11-19T12:23:18.531992476Z caller=main.go:130 msg="Starting Loki" version="(version=2.2.0, branch=HEAD, revision=a27c79913)"
loki_1                         | level=info ts=2021-11-19T12:23:18.532946213Z caller=server.go:229 http=[::]:3100 grpc=[::]:9095 msg="server listening on addresses"
loki_1                         | level=error ts=2021-11-19T12:23:18.534743736Z caller=log.go:106 msg="error running loki" err="mkdir /tmp/loki/chunks: permission denied\nerror initialising module: compactor\ngithub.com/cortexproject/cortex/pkg/util/modules.(*Manager).initModule\n\t/src/loki/vendor/github.com/cortexproject/cortex/pkg/util/modules/modules.go:105\ngithub.com/cortexproject/cortex/pkg/util/modules.(*Manager).InitModuleServices\n\t/src/loki/vendor/github.com/cortexproject/cortex/pkg/util/modules/modules.go:75\ngithub.com/grafana/loki/pkg/loki.(*Loki).Run\n\t/src/loki/pkg/loki/loki.go:220\nmain.main\n\t/src/loki/cmd/loki/main.go:132\nruntime.main\n\t/usr/local/go/src/runtime/proc.go:204\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1374

Failure when building Docker images on Mac M1 (ARM)

When executing the build

mvn clean package docker:build

there is an error

[ERROR] : could not get native definition for type `POINTER`, original error message follows: java.lang.UnsatisfiedLinkError: 
Unable to execute or load jffi binary stub from `/var/folders/0b/cch41sld0fsbb0ntt0xz9fd40000gn/T/`. Set `TMPDIR` or Java property `java.io.tmpdir` to a read/write path that is not mounted "noexec".
  • MacBook Pro M1 (ARM)
  • Docker version : Docker desktop 4.3.0
  • Apache Maven 3.6.3

Solution: upgrade Maven Docker Plugin as this seems fixed in a later version (issue fabric8io/docker-maven-plugin#1471)

unmarshal errors when using latest grafana/tempo image

The latest grafana/tempo image keeps failing to start due to unmarshal errors related to the tempo.yaml.

$ docker logs boot-opentelemetry-tempo_tempo_1
failed parsing config: failed to parse configFile /etc/tempo.yaml: yaml: unmarshal errors:
  line 38: field bloom_filter_false_positive not found in type wal.Config
  line 39: field index_downsample not found in type wal.Config

As a workaround, I was able to downgrade the image in docker-compose to grafana/tempo:0.5.0. Issue seems to happen with grafana/tempo:0.6.0 and higher.

Need Info on creating Span Event and how to handle span in case of recursive method call

Hi ,

I would like thank for this creating such a good example.

Question 1:
In the below example, I see event start and end are at same place.

Generally

    • START an event in the starting of the method call
    • END event will be at the ending of the method
    • Exception we would say exception, i think "span.recordException" can be used assuming the event will be closed incase of any exception.
  1. Log the request and response in the span

Why we need this to know how many request triggered in specific time and also to get the count of pass/fail in one page.

I request you to modify the code to accommodate this.

@WithSpan
    private void doSomeWorkNewSpan() {
		LOGGER.info("Doing some work In New span");
        Span span = Span.current();
 
        span.setAttribute("attribute.a2", "some value");
 
        span.addEvent("app.processing2.start", atttributes("321"));
        span.addEvent("app.processing2.end", atttributes("321"));
    }

Question 2:

I have a requirement on recursive method call.

Example a hotel will have 100's of room types, incase of any api first 10 will be sent in first call and soon subsequent calls will made to rest of the data.

Typically code implementation

HotelRoomTypes
getAllRoomTypes:
ContentAPIClient:
getRoomTypes(id,nextpageKey) - recursive calls

I want to all this to be happen in open span, because as functionality talks about all room types everything or nothing.
Overall high level picture is getting all Room types and select a room by checking availability and book, I want to Trace the entire flow in one Trace.

Regards,
Sathya Prakash.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.