Conversation
|
Please fix conflicts. |
|
ok fix conflict |
|
it looks hbase scenarios test failed, i do not change other file |
|
Please resolve conflicts. |
|
ok, fix it |
|
Your #45 gets merged, you have to resolve the conflicts again. |
|
ok, fix conflicts |
...2.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/okhttp/v2/RealCallInterceptor.java
Outdated
Show resolved
Hide resolved
| # limitations under the License. | ||
| segmentItems: | ||
| - serviceName: okhttp2-scenario | ||
| segmentSize: ge 5 |
There was a problem hiding this comment.
at least one health check
There was a problem hiding this comment.
We don't have to do this. Usually ge 0 is clear enough.
| - segmentId: not null | ||
| spans: | ||
| - operationName: Async/okhttp2-scenario/case/receiveContext-0 | ||
| parentSpanId: 0 | ||
| spanId: 1 | ||
| startTime: nq 0 | ||
| endTime: nq 0 | ||
| componentId: 0 | ||
| isError: false | ||
| spanType: Local | ||
| skipAnalysis: 'false' | ||
| - operationName: GET:/case/okhttp2-scenario | ||
| parentSpanId: -1 | ||
| spanId: 0 | ||
| spanLayer: Http | ||
| startTime: nq 0 | ||
| endTime: nq 0 | ||
| componentId: 14 | ||
| isError: false | ||
| spanType: Entry | ||
| tags: | ||
| - {key: url, value: 'http://localhost:8080/okhttp2-scenario/case/okhttp2-scenario'} | ||
| - {key: http.method, value: GET} | ||
| skipAnalysis: 'false' |
There was a problem hiding this comment.
What is this segment? It seems no exit and no ref?
There was a problem hiding this comment.
I assume this is the main entry and the next should be async call, right?
There was a problem hiding this comment.
I can see /okhttp2-scenario/case/receiveContext-0 exit span, but where is /okhttp2-scenario/case/receiveContext-1 exit span?
There was a problem hiding this comment.
yes the segment next is async call, it follows the passed okhttp version
/okhttp2-scenario/case/receiveContext-1 exit span seems lost, i recheck it
There was a problem hiding this comment.
i find the problem, the request is in async call back respose method, but the last span is exit span, this causes this span will be discarded
There was a problem hiding this comment.
it looks the passed okhttp version has the same problem, besides, the time of action in response method will be calculated in last span, it is not correct
There was a problem hiding this comment.
This span will be ignore only if both spans are in the same thread. But callback usually should generate a local span. Also, callback should invoke after the first HTTP span finished, right?
There was a problem hiding this comment.
yes, both span is in same thread, the implementation is strange, i will optimize it
There was a problem hiding this comment.
That means the first exit span doesn't finish in time.
| Request request = new Request.Builder().url("http://127.0.0.1:8080/okhttp2-scenario/case/receiveContext-0") | ||
| .header("sw8", "123456").build(); |
There was a problem hiding this comment.
Could you explain a little about this? sw8 header is not in this format.
When you are doing request, the header should be injected automatically. Is this somthing special?
There was a problem hiding this comment.
it can confirm the plugin overwrite the skywalking sw8 head
There was a problem hiding this comment.
Why do we need to test this scenario? Who will use this header key besides ourselves?
There was a problem hiding this comment.
ok, i will remove it
There was a problem hiding this comment.
A question is, from the graph, the duration of first span is incorrect. It should finish before the local span starts, otherwise, the rpc duration is over measured.
There was a problem hiding this comment.
yes, but self time cost is the duration of first span,
There was a problem hiding this comment.
That is correct. But when you look at metrics of lines in the topology, which represents calling outbound to upstream, the number of client side is generated by exit span.
So, we also need to fix that duration too.
There was a problem hiding this comment.
ok i will fix it and the passed okhttp version too
|
@xu1009 Could you finish this pull request? |
|
New release should start recently, if you want to include this in, you need to finish this PR ASAP. |
|
This trace seems good now. Is there other version(s) to fix? |
|
no, i think it is the best, it can show the time cost precisely |
I just mean this, there are several versions to fix, right? |
|
yes, i ci it in this way |
|
Please fix CI. |
|
ok, okhttp4.x use kt, it looks internal method name is diff in running time |
|
the failed ci task is not my change |
I rerun those. But it seems you missed some UTs? |
|
yes, i find the problem, fix it |
|
Strange, that plugin can't pass even I have tried many times. |
|
i do not change that plugin== |
|
i will try the master branch |
|
the master branch failed too |
I know you didn't change that. |
* main: (28 commits) fix release doc (#61) Support Jedis' Transaction and fix duplicated enhancement (#57) Initialize 8.9.0 iteration (#59) Polish release shell and doc. (#58) fix rocketmq message header properties garbled characters issue (#54) Fix netty-socketio plugin test failure (#56) Add okhttp2.x plugin (#49) add e2e test for kafka transporter (#42) Fix version badge (#53) Add JDK17 supported declaration. (#52) Fix instrumentation v2 API doesn't work for constructor instrumentation. (#51) Add kylin jdbc plugin (#45) Fix version compatibility for JSON-RPC4J Plugin (#50) Feature add clickhouse jdbc plugin (#41) Update menu.yml (#48) Fix format. (#47) Add new menu for the document (#46) Doc: Update setup agent in kubernetes from 'containers' to 'initContainers'. (#44) The httpasyncclient-4.x-plugin does not take effect every time. (#40) Add an agent plugin to support Jackson (#39) ... # Conflicts: # .github/workflows/plugins-test.3.yaml # CHANGES.md # docs/en/setup/service-agent/java-agent/README.md # docs/menu.yml


Add an agent plugin to support
CHANGESlog.