diff --git a/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/config/ComponentLibraryCatalogFileTest.java b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/config/ComponentLibraryCatalogFileTest.java new file mode 100644 index 000000000..0f73384d2 --- /dev/null +++ b/oap-server/server-core/src/test/java/org/apache/skywalking/oap/server/core/config/ComponentLibraryCatalogFileTest.java @@ -0,0 +1,36 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package org.apache.skywalking.oap.server.core.config; + +import org.junit.Assert; +import org.junit.Test; + +/** + * @author wusheng + */ +public class ComponentLibraryCatalogFileTest { + @Test + public void testInitAndSettings() { + ComponentLibraryCatalogService service = new ComponentLibraryCatalogService(); + Assert.assertEquals(1, service.getComponentId("Tomcat")); + Assert.assertEquals(7, service.getServerIdBasedOnComponent(30)); + Assert.assertEquals(21, service.getServerIdBasedOnComponent(21)); + Assert.assertEquals("Jedis", service.getServerName(30)); + } +} diff --git a/oap-server/server-core/src/test/resources/component-libraries.yml b/oap-server/server-core/src/test/resources/component-libraries.yml new file mode 100644 index 000000000..7291c7f7e --- /dev/null +++ b/oap-server/server-core/src/test/resources/component-libraries.yml @@ -0,0 +1,264 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Define all component libraries' names and IDs, used in monitored application. +# This is a bothway mapping, agent or SDK could use the value(ID) to represent the component name in uplink data. +# +# ###### +# id +# ###### +# We highly recommend DO NOT change the IDs in these file, just append new one, and make sure the ID unique. +# Any replacement will cause visualization and aggregation error. +# +# All IDs in this files are reserved, even some IDs removed by some reasons, those IDs will be abandoned. +# +# ###### +# languages +# ###### +# Languages declare which languages are using this component. Multi languages should be separated by `,` + +Tomcat: + id: 1 + languages: Java +HttpClient: + id: 2 + languages: Java,C#,Node.js +Dubbo: + id: 3 + languages: Java +H2: + id: 4 + languages: Java +Mysql: + id: 5 + languages: Java,C#,Node.js +ORACLE: + id: 6 + languages: Java +Redis: + id: 7 + languages: Java,C#,Node.js +Motan: + id: 8 + languages: Java +MongoDB: + id: 9 + languages: Java,C#,Node.js +Resin: + id: 10 + languages: Java +Feign: + id: 11 + languages: Java +OKHttp: + id: 12 + languages: Java +SpringRestTemplate: + id: 13 + languages: Java +SpringMVC: + id: 14 + languages: Java +Struts2: + id: 15 + languages: Java +NutzMVC: + id: 16 + languages: Java +NutzHttp: + id: 17 + languages: Java +JettyClient: + id: 18 + languages: Java +JettyServer: + id: 19 + languages: Java +Memcached: + id: 20 + languages: Java +ShardingJDBC: + id: 21 + languages: Java +PostgreSQL: + id: 22 + languages: Java,C#,Node.js +GRPC: + id: 23 + languages: Java +ElasticJob: + id: 24 + languages: Java +RocketMQ: + id: 25 + languages: Java +httpasyncclient: + id: 26 + languages: Java +Kafka: + id: 27 + languages: Java +ServiceComb: + id: 28 + languages: Java +Hystrix: + id: 29 + languages: Java +Jedis: + id: 30 + languages: Java +SQLite: + id: 31 + languages: Java,C# +h2-jdbc-driver: + id: 32 + languages: Java +mysql-connector-java: + id: 33 + languages: Java +Spymemcached: + id: 35 + languages: Java +Xmemcached: + id: 36 + languages: Java +postgresql-jdbc-driver: + id: 37 + languages: Java +rocketMQ-producer: + id: 38 + languages: Java +rocketMQ-consumer: + id: 39 + languages: Java +kafka-producer: + id: 40 + languages: Java +kafka-consumer: + id: 41 + languages: Java +mongodb-driver: + id: 42 + languages: Java +SOFARPC: + id: 43 + languages: Java +ActiveMQ: + id: 44 + languages: Java +activemq-producer: + id: 45 + languages: Java +activemq-consumer: + id: 46 + languages: Java +Elasticsearch: + id: 47 + languages: Java +transport-client: + id: 48 + languages: Java + +# .NET/.NET Core components +# [3000, 4000) for C#/.NET only +AspNetCore: + id: 3001 + languages: C# +EntityFrameworkCore: + id: 3002 + languages: C# +SqlClient: + id: 3003 + languages: C# +CAP: + id: 3004 + languages: C# +StackExchange.Redis: + id: 3005 + languages: C# +SqlServer: + id: 3006 + languages: C# +Npgsql: + id: 3007 + languages: C# +MySqlConnector: + id: 3008 + languages: C# +EntityFrameworkCore.InMemory: + id: 3009 + languages: C# +EntityFrameworkCore.SqlServer: + id: 3010 + languages: C# +EntityFrameworkCore.Sqlite: + id: 3011 + languages: C# +Pomelo.EntityFrameworkCore.MySql: + id: 3012 + languages: C# +Npgsql.EntityFrameworkCore.PostgreSQL: + id: 3013 + languages: C# +InMemoryDatabase: + id: 3014 + languages: C# +AspNet: + id: 3015 + languages: C# + +# NoeJS components +# [4000, 5000) for Node.js agent +HttpServer: + id: 4001 + languages: Node.js +express: + id: 4002 + languages: Node.js +Egg: + id: 4003 + languages: Node.js +Koa: + id: 4004 + languages: Node.js + +# Component Server mapping defines the server display names of some components +# e.g. +# Jedis is a client library in Java for Redis server +Component-Server-Mappings: + mongodb-driver: MongoDB + rocketMQ-producer: RocketMQ + rocketMQ-consumer: RocketMQ + kafka-producer: Kafka + kafka-consumer: Kafka + activemq-producer: ActiveMQ + activemq-consumer: ActiveMQ + postgresql-jdbc-driver: PostgreSQL + Xmemcached: Memcached + Spymemcached: Memcached + h2-jdbc-driver: H2 + mysql-connector-java: Mysql + Jedis: Redis + StackExchange.Redis: Redis + SqlClient: SqlServer + Npgsql: PostgreSQL + MySqlConnector: Mysql + EntityFrameworkCore.InMemory: InMemoryDatabase + EntityFrameworkCore.SqlServer: SqlServer + EntityFrameworkCore.Sqlite: SQLite + Pomelo.EntityFrameworkCore.MySql: Mysql + Npgsql.EntityFrameworkCore.PostgreSQL: PostgreSQL + transport-client: Elasticsearch diff --git a/oap-server/server-starter/src/main/resources/component-libraries.yml b/oap-server/server-starter/src/main/resources/component-libraries.yml new file mode 100644 index 000000000..7291c7f7e --- /dev/null +++ b/oap-server/server-starter/src/main/resources/component-libraries.yml @@ -0,0 +1,264 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Define all component libraries' names and IDs, used in monitored application. +# This is a bothway mapping, agent or SDK could use the value(ID) to represent the component name in uplink data. +# +# ###### +# id +# ###### +# We highly recommend DO NOT change the IDs in these file, just append new one, and make sure the ID unique. +# Any replacement will cause visualization and aggregation error. +# +# All IDs in this files are reserved, even some IDs removed by some reasons, those IDs will be abandoned. +# +# ###### +# languages +# ###### +# Languages declare which languages are using this component. Multi languages should be separated by `,` + +Tomcat: + id: 1 + languages: Java +HttpClient: + id: 2 + languages: Java,C#,Node.js +Dubbo: + id: 3 + languages: Java +H2: + id: 4 + languages: Java +Mysql: + id: 5 + languages: Java,C#,Node.js +ORACLE: + id: 6 + languages: Java +Redis: + id: 7 + languages: Java,C#,Node.js +Motan: + id: 8 + languages: Java +MongoDB: + id: 9 + languages: Java,C#,Node.js +Resin: + id: 10 + languages: Java +Feign: + id: 11 + languages: Java +OKHttp: + id: 12 + languages: Java +SpringRestTemplate: + id: 13 + languages: Java +SpringMVC: + id: 14 + languages: Java +Struts2: + id: 15 + languages: Java +NutzMVC: + id: 16 + languages: Java +NutzHttp: + id: 17 + languages: Java +JettyClient: + id: 18 + languages: Java +JettyServer: + id: 19 + languages: Java +Memcached: + id: 20 + languages: Java +ShardingJDBC: + id: 21 + languages: Java +PostgreSQL: + id: 22 + languages: Java,C#,Node.js +GRPC: + id: 23 + languages: Java +ElasticJob: + id: 24 + languages: Java +RocketMQ: + id: 25 + languages: Java +httpasyncclient: + id: 26 + languages: Java +Kafka: + id: 27 + languages: Java +ServiceComb: + id: 28 + languages: Java +Hystrix: + id: 29 + languages: Java +Jedis: + id: 30 + languages: Java +SQLite: + id: 31 + languages: Java,C# +h2-jdbc-driver: + id: 32 + languages: Java +mysql-connector-java: + id: 33 + languages: Java +Spymemcached: + id: 35 + languages: Java +Xmemcached: + id: 36 + languages: Java +postgresql-jdbc-driver: + id: 37 + languages: Java +rocketMQ-producer: + id: 38 + languages: Java +rocketMQ-consumer: + id: 39 + languages: Java +kafka-producer: + id: 40 + languages: Java +kafka-consumer: + id: 41 + languages: Java +mongodb-driver: + id: 42 + languages: Java +SOFARPC: + id: 43 + languages: Java +ActiveMQ: + id: 44 + languages: Java +activemq-producer: + id: 45 + languages: Java +activemq-consumer: + id: 46 + languages: Java +Elasticsearch: + id: 47 + languages: Java +transport-client: + id: 48 + languages: Java + +# .NET/.NET Core components +# [3000, 4000) for C#/.NET only +AspNetCore: + id: 3001 + languages: C# +EntityFrameworkCore: + id: 3002 + languages: C# +SqlClient: + id: 3003 + languages: C# +CAP: + id: 3004 + languages: C# +StackExchange.Redis: + id: 3005 + languages: C# +SqlServer: + id: 3006 + languages: C# +Npgsql: + id: 3007 + languages: C# +MySqlConnector: + id: 3008 + languages: C# +EntityFrameworkCore.InMemory: + id: 3009 + languages: C# +EntityFrameworkCore.SqlServer: + id: 3010 + languages: C# +EntityFrameworkCore.Sqlite: + id: 3011 + languages: C# +Pomelo.EntityFrameworkCore.MySql: + id: 3012 + languages: C# +Npgsql.EntityFrameworkCore.PostgreSQL: + id: 3013 + languages: C# +InMemoryDatabase: + id: 3014 + languages: C# +AspNet: + id: 3015 + languages: C# + +# NoeJS components +# [4000, 5000) for Node.js agent +HttpServer: + id: 4001 + languages: Node.js +express: + id: 4002 + languages: Node.js +Egg: + id: 4003 + languages: Node.js +Koa: + id: 4004 + languages: Node.js + +# Component Server mapping defines the server display names of some components +# e.g. +# Jedis is a client library in Java for Redis server +Component-Server-Mappings: + mongodb-driver: MongoDB + rocketMQ-producer: RocketMQ + rocketMQ-consumer: RocketMQ + kafka-producer: Kafka + kafka-consumer: Kafka + activemq-producer: ActiveMQ + activemq-consumer: ActiveMQ + postgresql-jdbc-driver: PostgreSQL + Xmemcached: Memcached + Spymemcached: Memcached + h2-jdbc-driver: H2 + mysql-connector-java: Mysql + Jedis: Redis + StackExchange.Redis: Redis + SqlClient: SqlServer + Npgsql: PostgreSQL + MySqlConnector: Mysql + EntityFrameworkCore.InMemory: InMemoryDatabase + EntityFrameworkCore.SqlServer: SqlServer + EntityFrameworkCore.Sqlite: SQLite + Pomelo.EntityFrameworkCore.MySql: Mysql + Npgsql.EntityFrameworkCore.PostgreSQL: PostgreSQL + transport-client: Elasticsearch