* Support service relation and database access alarm
* support service instance relation alarm
* support endpoint relation alarm
* document and format the name
* resolve issues
* add database access and endpoint relation rule example
* resolve code format
* remove unnecessary getter and setter package declare
* remove unnecessary fields
Co-authored-by: Mrproliu <mrproliu@lagou.com>
* support multiple segments analyze
* Support multiple ways to analyze segment data
* Change to support single or list of the segment data, add the document
* fix document and change the lua agent commit id
Co-authored-by: Mrproliu <mrproliu@lagou.com>
* Format index name with namespace
Signed-off-by: Gao Hongtao <hanahmily@gmail.com>
* Use another variable to compare index name
Signed-off-by: Gao Hongtao <hanahmily@gmail.com>
Co-authored-by: 吴晟 Wu Sheng <wu.sheng@foxmail.com>
1. Service Traffic should serialize and deserialize the time bucket, otherwise, there is a chance service_traffic-0 generated.
2. Make top N results more clear about the owner. Previously, the same endpoint names of different services look the same.
3. Sync UI.
4. Fix service traffic equal and hashcode method. The time bucket is not a part of the entity attribute.
* Add Mariadb JDBC plugin and provide tests
* Refactor component name
* Reformat plugin description and remove healthcheck span from the test
Co-authored-by: Efe Kaptan <Efe.Kaptan@webtrekk.com>
Co-authored-by: zhang-wei <pknfe@outlook.com>
Co-authored-by: 吴晟 Wu Sheng <wu.sheng@foxmail.com>
* Update nacos version to 1.2.0(Solve the security problem of the old version of fastsjon)
Co-authored-by: songzhendong <289505773@qq.com>
Co-authored-by: songzhendong <songzhendong@xiaomi.com>
* fix to get 'peer' in SingleServerConfig, this method to throw exception in 'org.apache.skywalking.apm.agent.core.context.TracingContext#createExitSpan' because 'peer' is null. in sw 6 version, this also one of problem to throw 'NoSuchElementException' in 'org.apache.skywalking.apm.agent.core.context.ContextManager#capture'
* Polishing
Co-authored-by: gui.cao <gui.cao@zhangmen.com>
Co-authored-by: hanfei <zifeihan@foxmail.com>
Co-authored-by: 吴晟 Wu Sheng <wu.sheng@foxmail.com>
* vertx web plugin re-impl attempt
* added license
* update test for new plugin structure
* got rid of registryItems
* remove unnecessary dependencies
* re-impl eventbus scenario
* more precise naming
* fix expected data
* removed unsupported versions and removed vertx caching (avoids permission error)
* rewrote to remove copied code
* Update plugins-test.3.yaml
* fixes issue of .vertx files remaining on v3.0.0
* only present in v3.0.0
* consistency
* add more supported versions
* track status code
* spelling fix
* track status code
* more correct naming
* reverts 213f5a69 (status code isn't sent at this point)
* made HttpServerResponseImplEndInstrumentation more strict based on version
added status code tracking
fixes issue not finishing async spans
* works 3.0.0,3.7.0
* increase compatibility
* 3.9.0 default
* versioned witness classes (advice from wu-sheng)
Co-authored-by: 吴晟 Wu Sheng <wu.sheng@foxmail.com>
Co-authored-by: zhang-wei <pknfe@outlook.com>
Here are the basic and simple usages of the MeterSystem APIs.
## Meter Creation
New meter could be created based on metrics name, function, scope and data type.
1. Metrics name is still the storage entity name.
2. Functions are every similar with the OAL function, just accepting different input.
```java
final MeterSystem meterSystem = MeterSystem.meterSystem(getManager());
meterSystem.create("test_long_metrics", "avg", ScopeType.SERVICE, Long.class);
```
NOTICE, this creation should only be called in the `module#prepare` stage, otherwise, `Can't create new metrics anymore` exception will be raised after the **CORE** module `start` stage finished. You may find out, there is a chance `create` could be executed successfully in your own `module#start` stage, but it it just because of the sequence of provider loaded by the class loader, **no guarantee, so please don't do that**.
## Runtime Calculation
`AcceptableValue` is the object created at the runtime to accept new metrics value.
```java
final MeterSystem service = getManager().find(CoreModule.NAME).provider().getService(MeterSystem.class);
Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
final AcceptableValue<Long> value = service.buildMetrics("test_long_metrics", Long.class);
value.accept(MeterEntity.newService("abc"), 5L);
value.setTimeBucket(TimeBucket.getMinuteTimeBucket(System.currentTimeMillis()));
service.doStreamingCalculation(value);
}
}, 2, 2, TimeUnit.SECONDS);
```
## Meter Functions
Right now, only `avg` function has been implemented. I submit this PR as soon as possible to get your feedback. I will add more functions.
## Notice
1. Make slow trace query available in the sampled record. Logically, they are the same thing. The UI doesn't need to concern about the trace as a special case.
2. Endpoint dependency will be removed from the dashboard. Because no query available for it. We will provide a new page for that in 8.1
3. Comparison page will be removed due to dashboard is powerful enough to replace it.
1. Re-balance the workload of plugintests
2. Restore testcases of MySQL, remove on #4641
3. Support user to runs plugin-test on debug mode. It will not remove the log files and actualData.yaml
4. remove paramater 'parallel_run_size' and disable parallel test.
* Add data type to the column definition to replace the simple isValue definition. And top N query is also requiring value column now.
* Support typeOfMetrics query.