Provide plugin for Solr-7.x(client)#2730
Conversation
|
Waiting for the integration test pull request. |
| .setLayer(SpanLayer.DB); | ||
| span.tag(SolrjTags.TAG_QT, params.get(CommonParams.QT, "/select")); | ||
| } | ||
|
|
There was a problem hiding this comment.
Above codes include a lot of instanceof, which would be an impact for performance, especially in JRE 6-8. If possible, please consider a better way to do this.
|
Here is the test report and validate logs |
|
@dmsolr The test fails, please make sure your local test passed. |
|
I think that is why I committed the expected data of test cases that dosen't take effect. I modified the tags' sequence. |
The robot will use the latest commit of this and SkyAPMTest/agent-auto-integration-testcases#72 . What do you mean |
|
I talk with @wu-sheng about how to deal status of span in the
So I decide to trace all of path.
|
|
inline |
|
Hi @IanCao, I had resolved the checking conditions must be in pairs. |
|
Here is the test report and validate logs |
yes.in my opinion , it's ok |
|
lgtm @wu-sheng |
| <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | ||
| <java.version>1.6</java.version> | ||
| <maven.compiler.source>${java.version}</maven.compiler.source> | ||
| <maven.compiler.target>${java.version}</maven.compiler.target> |
There was a problem hiding this comment.
You don't need these three, L35-L37.
wu-sheng
left a comment
There was a problem hiding this comment.
I still need a little explanation about the tags, because from my understanding, SolrJ is the first plugin to set up its own tags. To be clear, new tags are not bad things, I just want to make sure we make things good, and keep SkyWalking in a good performance as always.
Could you brief about what these tags for? Clearly, it is not for analysis, because no backend codes will know that. Such as,
- Are these tags like SQL statement?
- Are these tags including parameters of each request?
- Do we have other choices to format these, such as format it as a JSON into DB_STATEMENT tag? The reason I asked this is because it will benefit from existing DB metrics and slow statement analysis.
You have already defined the SolrJ as DB layer, so for me, I think following the existing DB plugin tradition makes more sense.
Look forward to having your reply.
wu-sheng
left a comment
There was a problem hiding this comment.
Also, as a DB layer, you don't set DB_INSTANCE and DB_TYPE tags. These are important tags, with DB_STATEMENT in above comment.
|
Hi @wu-sheng ,
On commit/optimize request,maybe need to trace waitFLush and waitSearch. They explain whether QTime is available. About |
|
@dmsolr I just read your reply again, here is my reply
Why this status doesn't match span status? Which values of these status?
Why doesn't this match the span duration? If this represents target(solr server) duration, we should have solr server trace in next step, right? Then we still don't need this.
All these are either execution results or parameters. In my mind, all these should only be tagged when the user explicitly opens it. Add config item to For And in your example, could you tell me, what does Out of the above context, my other question is, what is purpose and benefit to provide Solr server plugin.
The point is, I hope we could focus on APM, and don't get user confused. |
|
@wu-sheng , I am sorry to reply so late.
It looks like http status. But it uses
Yes. It represents elapsed time on server side. It exclude http, de/en-serialized time-consuming.
That likes table name in SQL. It consist of shards and replicas. If the request sends to the specified sharding, the operation name will use sharding name( it names
I think they are useful.
They may not be useful for single request analysis, but they let us know what is done to the server and what state the server is in. But for caller, they are really useless. For me, a ops of solr, they are a bit important. So they are opened through config. |
| if (result != null) { | ||
| NamedList<Object> header = (NamedList<Object>) result.get("responseHeader"); | ||
| if (header != null) { | ||
| span.tag(SolrjTags.TAG_STATUS, String.valueOf(header.get("status"))); |
There was a problem hiding this comment.
By following your explanation, this tag value should work with span#errorOccurred together.
|
@dmsolr Most are good to me, just one change required. |
|
|
Here is the test report and validate logs |
wu-sheng
left a comment
There was a problem hiding this comment.
Add the config to document of setup
|
Here is the test report and validate logs |



Please answer these questions before submitting pull request
Why submit this pull request?
Bug fix
New feature provided
Improve performance
Related issues
[Agent] Provide plugin for Solr-7.x #2501