Pinpoint: Ways to increase agent id character limit

Created on 13 Mar 2019  路  12Comments  路  Source: pinpoint-apm/pinpoint

Description

Agent id is currently limited to 24 characters. This makes it hard at times to set it to a value provided by certain environment (such as when deploying onto kubernetes).
A few ways to increase this limit are as follows.

  1. Hard increase the current limit to 36. Requires the least amount of work, but will break compatibility.
  2. Convert kubernetes pod id into long long and use this internally. K8s seems to use RFC 4122 UUID to generate pod id, which can be converted into a long long so it'll integrate cleanly. There still needs to be a way to figure out if a given agent id is an actual value, or a long long from a UUID string.
  3. Map agent ids into longs and use this internally. Requires the most amount of work, and will break compatibility, but would work best out of all solutions.

Still brain storming ideas so any suggestions are welcome.

related issues - #4638 #3504

enhancement proposal

Most helpful comment

Hi @dawidmalina
I'm currently working on accepting and storing UUIDs by encoding them into a 22 byte string.
This should cover your use case in k8s as you would be able to use the pod id as the agent id.
Additionally, since pod id doesn't seem to be very useful to users, we're thinking of collecting the pod name as well and exposing this in the web UI in case of k8s agents.

Please let me know if you have any concerns, or think there are other useful information we should collect for k8s agents.
Thanks.

All 12 comments

@Xylus any updates on this? I'm afraid that soon pinpoin will lose its momentum to gain even more interests. Kubernetes deployments are now industry standard (including corporate) and pinpoint shall take this opportunity. If not probably other tool will take over this share.

Hi @dawidmalina
I'm currently working on accepting and storing UUIDs by encoding them into a 22 byte string.
This should cover your use case in k8s as you would be able to use the pod id as the agent id.
Additionally, since pod id doesn't seem to be very useful to users, we're thinking of collecting the pod name as well and exposing this in the web UI in case of k8s agents.

Please let me know if you have any concerns, or think there are other useful information we should collect for k8s agents.
Thanks.

Thanks for sharing this, I appreciate this. I think that pod id for uniqueness and pod name as display name is the best approach 馃憤 For now I can't find any other useful information that we should collect. Let's start with this and improve later :)

Please let me know if you need help with testing.

@dawidmalina Sounds good!

Is this issue fixed in branch 1.8.4?

@prajidi-blumeglobal No, it isn't fixed in 1.8.4, and I don't think it will be released for 1.8.x.
We're targetting this for our next non-1.8.x release.

Current plan is to take the 3rd route and keep backwards compatibility - using agent id as an alias, and assigning uuid to each agent id for use internally.
Should involve a lot of code changes to all 3 components so might take a bit to implement.

Any chance this will be addressed in version 2.0.0?

This feature is not included in 2.0.0

Any chance this will be addressed in version 2.1.0?

I stuck same issue and took a - format.
It wasn't nice, but no choice.

Use the combination of the feature "auto agent id" #7382 and provide "agent name" #7787 might solve this. This is what i did, changed the premain class to do some initialization and customization stuff like setting pinpoint.agentName, pinpoint.applicationName automatically and then delegate to the original premain class to start.

Note: agent name support feature currently is in review and not merged, some changes might happen.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

harissutanrafiq picture harissutanrafiq  路  5Comments

08s011003 picture 08s011003  路  3Comments

ing-arriola picture ing-arriola  路  3Comments

zilingliyu picture zilingliyu  路  4Comments

vedantgoenka picture vedantgoenka  路  6Comments