Hi Dev team

If you are familiar with the latest OAP core, you will know, we register id
for the endpoint. But this design has the following issues
1. The register has low performance as it can't be run in parral even we
have clustering OAP. Even worse, in the cluster mode, the register is slower
2. The ID is designed as an integer, it could be run out in some time. We
don't have good idea to restore or extend it.
3. Endpoint including the parameter(such as, inside the URI) is always an
issue, and could only be improved in the agent plugin, but never could be

The new changes are
1. Use `EndpointTraffic` to replace `EndpointInventory`. EndpointTraffic is
a manual metrics, not a register inventory.
2. ID register would not happen, and service_id + base64(endpoint name)
will be used as the entity id.
3. EndpointTraffic also keeps the time series feature like all other
metrics, so it could be removed by TTL.
4. EndpointRelation follows the changes of EndpointInevntory removal. It
keeps the source-service_id + base64(source endpoint name) and
dest-service_id + base64(dest endpoint name).

All the changes have been landed on the branch remove-endpoint-register
<https://github.com/apache/skywalking/tree/remove-endpoint-register>  in
the main repo.
It passed the compiling locally, but not e2e and plugin change has not been
made(no endpoint register)
I am working on local debugging if you have interests, welcome to join me.
I expect this is the most important change since 5.0 core design and should
be landed in the 7.1.0

Sheng Wu 吴晟
Twitter, wusheng1108

Reply via email to