diff --git a/docs/en/setup/backend/Component-library-settings.md b/docs/en/setup/backend/Component-library-settings.md new file mode 100644 index 000000000..c90457675 --- /dev/null +++ b/docs/en/setup/backend/Component-library-settings.md @@ -0,0 +1,61 @@ +# Component library settings +Component library settings are about your own or 3rd part libraries used in monitored application. + +In agent or SDK, no matter library name collected as ID or String(literally, e.g. SpringMVC), collector +formats data in ID for better performance and less storage requirements. + +Also, collector conjectures the remote service based on the component library, such as: +the component library is MySQL Driver library, then the remote service should be MySQL Server. + +For those two reasons, collector require two parts of settings in this file: +1. Component Library id, name and languages. +1. Remote server mapping, based on local library. + +**All component names and IDs must be defined in this file.** + +## Component Library id +Define all component libraries' names and IDs, used in monitored application. +This is a both-way mapping, agent or SDK could use the value(ID) to represent the component name in uplink data. + +- Name: the component name used in agent and UI +- id: Unique ID. All IDs are reserved, once it is released. +- languages: Program languages may use this component. Multi languages should be separated by `,` + +### ID rules +- Java and multi languages shared: (0, 3000] +- .NET Platform reserved: (3000, 4000] +- Node.js Platform reserved: (4000, 5000] +- Go reserved: (5000, 6000] +- PHP reserved: (6000, 7000] + +Example +```yaml +Tomcat: + id: 1 + languages: Java +HttpClient: + id: 2 + languages: Java,C#,Node.js +Dubbo: + id: 3 + languages: Java +H2: + id: 4 + languages: Java +``` + +## Remote server mapping +Remote server will be conjectured by the local component. The mappings are based on Component library names. + +- Key: client component library name +- Value: server component name + +```yaml +Component-Server-Mappings: + Jedis: Redis + StackExchange.Redis: Redis + SqlClient: SqlServer + Npgsql: PostgreSQL + MySqlConnector: Mysql + EntityFrameworkCore.InMemory: InMemoryDatabase +``` \ No newline at end of file diff --git a/docs/en/setup/service-agent/java-agent/Plugin-Development-Guide.md b/docs/en/setup/service-agent/java-agent/Plugin-Development-Guide.md index 2174c33d6..e493ac6f0 100644 --- a/docs/en/setup/service-agent/java-agent/Plugin-Development-Guide.md +++ b/docs/en/setup/service-agent/java-agent/Plugin-Development-Guide.md @@ -157,10 +157,8 @@ SpanLayer is the catalog of span. Here are 5 values: 1. HTTP 1. MQ -Component IDs are defined and protected by SkyWalking project, 0 -> 10000 IDs are reserved. If you want to contribute -a new plugin, you can ask for an official ID, after your pull request approved and automatic test cases accepted by PMC. -Please use > 10000 ID, if you are going to develop a private plugin or don't intend to contribute the plugin to community, -to avoid the ID conflict. +Component IDs are defined and reserved by SkyWalking project. +For component name/ID extension, please follow [component library setting document](../../backend/Component-library-settings.md). ## Develop a plugin ### Abstract diff --git a/docs/en/setup/service-agent/java-agent/README.md b/docs/en/setup/service-agent/java-agent/README.md index abf1f363b..1d9544b8a 100644 --- a/docs/en/setup/service-agent/java-agent/README.md +++ b/docs/en/setup/service-agent/java-agent/README.md @@ -67,6 +67,10 @@ Now, we have the following known plugins. * If you want to use annotations or SkyWalking native APIs to read context, try [SkyWalking manual APIs](Application-toolkit-trace.md) * If you want to continue traces across thread manually, use [across thread solution APIs](Application-toolkit-trace-cross-thread.md). +## Plugin Development Guide +SkyWalking java agent supports plugin to extend [the supported list](Supported-list.md). Please follow +our [Plugin Development Guide](Plugin-Development-Guide.md). + # Test If you are interested in plugin compatible tests or agent performance, see the following reports. * [Plugin Test](https://github.com/SkywalkingTest/agent-integration-test-report)