Add component library settings document back.

This commit is contained in:
Wu Sheng 2018-08-16 20:37:27 +08:00
parent b0b7de9442
commit 1e51702bab
3 changed files with 67 additions and 4 deletions

View File

@ -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
```

View File

@ -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

View File

@ -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)