Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

trace_methods needs some definition at startup or redefining later fails

Đang mở
#3,296 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức phù hợp với người mới
35/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Đình trệ
Công nghệ
java
Lĩnh vực
observability-sre

Hướng nghiên cứu

Bắt đầu với TraceMethodInstrumentation$TraceMethodAdvice và theo dõi lỗi qua IndyBootstrap.java và ElasticApmAgent.java, đặc biệt là thao tác tra cứu ánh xạ được hiển thị trong stack trace. Tái hiện với trace_methods không tồn tại khi khởi động, sau đó đặt elastic.apm.trace_methods sau 30 giây. Hoàn thành khi cấu hình động hoạt động mà không cần placeholder lúc khởi động và các phương thức trong package được chọn bắt đầu tạo transaction sau khi định nghĩa lại.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

agent-java

Describe the bug

trace_methods is dynamic, but it looks like it needs to be defined with SOMETHING at startup, then it can successfully be redefined. But if not defined at all at startup, the redefinition fails with mapping errors

java.lang.IllegalStateException: There's no mapping for key co.elastic.apm.agent.tracemethods.TraceMethodInstrumentation$TraceMethodAdvice

Steps to reproduce

Do NOT define trace_methods at startup (ie it should be absent from properties and config files), then sometime after startup define it, eg

        new Thread(() -> {
                try {Thread.sleep(30_000L);} catch (InterruptedException e) {}
                System.setProperty("elastic.apm.trace_methods", "somepackage.*");
        }).start();

Expected behavior

For that example, all methods in somepackage should produce no transactions until about 30 seconds after startup, when it should start producing transactions for any method executed in somepackage

Debug logs

2023-08-21 14:48:06,614 [Thread-16] ERROR co.elastic.apm.agent.bci.IndyBootstrap - There's no mapping for key co.elastic.apm.agent.tracemethods.TraceMethodInstrumentation$TraceMethodAdvice
java.lang.IllegalStateException: There's no mapping for key co.elastic.apm.agent.tracemethods.TraceMethodInstrumentation$TraceMethodAdvice
	at co.elastic.apm.agent.bci.ElasticApmAgent.getInstrumentationClassLoader(ElasticApmAgent.java:946) ~[elastic-apm-agent-1.38.1-SNAPSHOT.jar:1.38.1-SNAPSHOT]
	at co.elastic.apm.agent.bci.IndyBootstrap.internalBootstrap(IndyBootstrap.java:416) ~[elastic-apm-agent-1.38.1-SNAPSHOT.jar:1.38.1-SNAPSHOT]
	at co.elastic.apm.agent.bci.IndyBootstrap.bootstrap(IndyBootstrap.java:389) ~[elastic-apm-agent-1.38.1-SNAPSHOT.jar:1.38.1-SNAPSHOT]
	at jdk.internal.reflect.GeneratedMethodAccessor16.invoke(Unknown Source) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
	at java.lang.IndyBootstrapDispatcher.bootstrap(IndyBootstrapDispatcher.java:61) ~[?:?]
	at java.lang.invoke.BootstrapMethodInvoker.invoke(BootstrapMethodInvoker.java:147) ~[?:?]
	at java.lang.invoke.CallSite.makeSite(CallSite.java:315) ~[?:?]
	at java.lang.invoke.MethodHandleNatives.linkCallSiteImpl(MethodHandleNatives.java:281) ~[?:?]
	at java.lang.invoke.MethodHandleNatives.linkCallSite(MethodHandleNatives.java:271) ~[?:?]
	at wimtjgf.ScoreUI.getGcTime(ScoreUI.java:215) ~[bin/:?]
	at wimtjgf.ScoreUI.lambda$2(Unknown Source) ~[bin/:?]
	at java.lang.Thread.run(Thread.java:833) [?:?]

Workaround

Add a dummy trace_methods definition at startup, eg -Delastic.apm.trace_methods=nothing.at.all then redefine dynamically as desired

Ngôn ngữ chính
Java
Star
593
Fork
338
Merge trung bình
1 ngày 9 giờ
Pull request đã merge (30 ngày)
13

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của elastic/apm-agent-java

Tất cả issue của elastic/apm-agent-java

Issue tương tự

Thêm issue về Java

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.