Commit Graph

445 Commits

Author SHA1 Message Date
吴晟 Wu Sheng 9c486a05ee
Support `sideCar.internalErrorCode` in the sources (#5849)
* Support nested sidecar object in the scope.

* Update the changelog.

* Fix comments and docs.
2020-11-17 09:03:48 +08:00
雨落殇秋 64707e0617
Fix dynamic configuration key bug of `endpoint-name-grouping` #5831 (#5833)
* tangs 修改key识别为core
* Update CHANGES.md


Co-authored-by: 唐山 <tangs@dev.sgcc.com>
Co-authored-by: 吴晟 Wu Sheng <wu.sheng@foxmail.com>
2020-11-12 08:57:37 +08:00
Xin,Zhang c66ae0b0c2
Fix issue caused by PR#5818 (#5826)
Co-authored-by: 吴晟 Wu Sheng <wu.sheng@foxmail.com>
2020-11-11 13:59:27 +08:00
Evan 729692ac53
fix searchTag not work (#5824) 2020-11-11 11:36:01 +08:00
Xin,Zhang 4a01f80ae7
Fix that chunked string is incorrect while the tag contains colon (#5818) 2020-11-10 14:14:01 +08:00
吴晟 Wu Sheng 5b84c5ad18
Fix CVE in the Apdex threshold configs, when activating the dynamic configuration feature. (#5811) 2020-11-09 15:55:56 +08:00
吴晟 Wu Sheng 5197004d08
Fix CVE in the endpoint grouping, when activating the dynamic configuration feature. (#5801) 2020-11-06 10:38:08 +08:00
xbkaishui 56fe8a4b41
Cluster manager health v2 (#5784) 2020-11-04 10:04:24 +08:00
吴晟 Wu Sheng 4238992baf
Polish the context and optimize the tag analyze (#5767)
* Polish the context and optimize the tag analyze

* Fix bug of new context codes.
2020-11-02 14:29:14 +08:00
Evan 9b6386f31c
support oal list includes and excludes & add tags to some source (#5739)
* add oal excludes and includes to support tags
Co-authored-by: 吴晟 Wu Sheng <wu.sheng@foxmail.com>
2020-11-01 09:48:48 +08:00
Hoshea Jiang 7e67358f56
Make the duration error message more specific (#5761)
* Make the duration error message more specific
2020-10-31 17:56:45 +08:00
吴晟 Wu Sheng 3c32ad10dd
Revert "Make the duration error message more specific (#5755)" (#5758) 2020-10-31 02:39:05 +08:00
Hoshea Jiang 0fb23b87f8
Make the duration error message more specific (#5755) 2020-10-30 22:55:03 +08:00
zhang-wei 42d8bedea9
Add the SuperDataset annotation to BrowserErrorLog (#5741) 2020-10-28 08:30:38 +08:00
Gao Hongtao 9ce47d5bdc
Meter Analysis Language (#5531) 2020-10-21 16:45:47 +08:00
吴晟 Wu Sheng 86ba4258c1
Add browser performance dashboard. (#5686)
* Add browser performance dashboard.

* Fix file header missing.

* Make sure the templates in A-Za-z
2020-10-19 23:13:01 +08:00
吴晟 Wu Sheng 6bcb6e8c19
Fix a comment (#5684) 2020-10-18 19:07:45 +08:00
zhang-wei 7e6b19dfc0
Fix some bugs with browser (#5683)
* fix query browser error log  bug
2020-10-18 17:58:29 +08:00
Daming 98968122e9
Provide Thrift Plugin (#5644) 2020-10-16 16:09:47 +08:00
吴晟 Wu Sheng 2b9de2007f
Separate UI template files for further enhancement. (#5656)
* Separate UI template files for further enhancement.

* Add doc about the UI template.
2020-10-13 20:04:08 +08:00
xbkaishui 2c729b5d69
Support group concept in the alarm core (#5615) 2020-10-03 23:26:29 +08:00
Daming d0b020e5a8
fix timebucket converter issue (#5585) 2020-10-02 17:05:50 +08:00
吴晟 Wu Sheng 103cf00672
Support JDK 11 compiling and upgrade dependencies (#5579)
* Upgrade dependencies and make the JDK11 compiling passed.

* Update license and fix license check file.

* Add CI for JDK11 compiling.

* Update doc.
2020-09-29 10:34:21 +08:00
Ax1an 1a27452ffc
Fix IDManager.java note. (#5563) 2020-09-26 17:18:29 +08:00
zhang-wei 7135414c3c
Fixed some bugs with browser-recevier (#5543) 2020-09-23 18:48:06 +08:00
hailin0 e200ef1045
Add support for xxl-job (#5519) 2020-09-20 10:04:32 +08:00
Gao Hongtao 50d2ff75bc
Parse TLS mode from ALS (#5454)
* Parse tls mode from als

Signed-off-by: Gao Hongtao <hanahmily@gmail.com>

* Polish code

Signed-off-by: Gao Hongtao <hanahmily@gmail.com>
2020-09-13 14:52:39 +08:00
Gao Hongtao 35264e6171
Support SSL for prometheus telemetry and prometheus fetcher (#5431)
* Support SSL for prometheus telemetry and prometheus fetcher
* Documents
* Clear up abandunt dependencies
* Update license

Signed-off-by: Gao Hongtao <hanahmily@gmail.com>
Co-authored-by: 吴晟 Wu Sheng <wu.sheng@foxmail.com>
2020-09-05 17:01:09 +08:00
Gao Hongtao 1473c04d3e
Introduce label system to histogram (#5425) 2020-09-04 14:49:47 +08:00
Gao Hongtao 30ce1959a7
Hot reload gRPC certs of OAP. (#5376) 2020-08-31 23:11:01 +08:00
zhang-wei 7ef8b3e476
Support Browser protocol at OAP (#4228) 2020-08-31 15:46:37 +08:00
hailin0 ca957699dc
Add support for quartz-scheduler (#5413) 2020-08-30 23:48:26 +08:00
Jared Tan 22bf8e6a61
fix auth in sharing server. (#5411)
Co-authored-by: 吴晟 Wu Sheng <wu.sheng@foxmail.com>
2020-08-30 08:20:53 +08:00
gnr163 a80a55589e
Fix bug about prepareBath in MetricsPersistentWorker #5399 (#5401)
* bugfix: when extend the scope and recommend to start with 10000 or scope greater than 1000   , freemarker  generate MetricsMetaInfo method will cause error such as MetricsMetaInfo("xxxx_cpm", 10,001, entityId)

Co-authored-by: jingjiu <jingjiu@tsign.cn>
Co-authored-by: 吴晟 Wu Sheng <wu.sheng@foxmail.com>
2020-08-28 11:32:24 +08:00
zhang-wei c5df0760f2
Support IN filter expressions in OAL (#5390) 2020-08-26 23:50:59 +08:00
hailin0 1b54b61a88
Add support for spring @Scheduled (#5339) 2020-08-23 17:13:49 +08:00
Lu Jiajing 5bfac1b50f
Remove style-check exception for logger (#5363) 2020-08-21 18:26:25 +08:00
Gao Hongtao 19836e64bb
Add labeled metrics to alarm system (#5276) 2020-08-18 22:55:01 +08:00
Gao Hongtao 68eba154c4
Add latest function (#5321)
Signed-off-by: Gao Hongtao <hanahmily@gmail.com>
2020-08-15 17:28:32 +08:00
kezhenxu94 ecc18b9be3
Support !=, like filter expressions in OAL (#5269) 2020-08-11 09:37:21 +08:00
吴晟 Wu Sheng 7f7e96b088
[IMPORTANT] Query traces with tags as condition (#5270) 2020-08-11 07:24:40 +08:00
Gao Hongtao b0bb7cf3be
Query all of labels once selected labels condition is absent. (#5202) 2020-08-08 22:26:06 +08:00
Ax1an 567c6b59f2
Fix Duration.java (#5241) 2020-08-05 21:59:28 +08:00
吴晟 Wu Sheng 89f314c86f
Make the column length of slow DB statement having the good default value. (#5238) 2020-08-05 16:14:10 +08:00
吴晟 Wu Sheng 48311e095a
Use client side component name when no server side mapping. (#5232)
* Use client side component name when no server side mapping.

* Unknown component should be fixed, so change the e2e expected data.
2020-08-05 13:34:58 +08:00
zifeihan e7288bff94
Fix error format of time in serviceTraffic update. (#5221) 2020-08-03 10:38:11 +08:00
吴晟 Wu Sheng 0146aa522f
Exporter INCREMENT mode is not working. (#5220) 2020-08-03 06:53:00 +08:00
Gao Hongtao 5f769ca2b4
Add AvgLabeledFunction to ingest multiple labels (#5187) 2020-07-30 07:32:29 +08:00
Gao Hongtao a49ce988b4
Support regular expression in labelFilter (#5174)
Co-authored-by: 吴晟 Wu Sheng <wu.sheng@foxmail.com>
2020-07-27 10:45:41 +08:00
Jared Tan db9f8e6e00
Support Jetty server advanced configuration. (#5147) 2020-07-25 17:41:49 +08:00
Stalary 1877d0fcf4
Add jvm_thread metrics (#5129) 2020-07-22 09:05:32 +08:00
Ax1an 7b9cbe2177
Update NodeType.java (#5108)
Co-authored-by: 吴晟 Wu Sheng <wu.sheng@foxmail.com>
2020-07-16 18:44:28 +08:00
Gao Hongtao b6661b5164
Add health checker module (#5046) 2020-07-10 00:30:43 +08:00
yazong 55ad655a5e
#5013 update @Column(columnName = ENTITY_ID, length = 512) private String entityId; (#5057) 2020-07-08 20:19:50 +08:00
yazong 2eefe98203
update (#5055) 2020-07-08 16:30:53 +08:00
Ax1an 3df2e8ddce
Fix no telemetry metrics when the oap role is receiver. (#5038) 2020-07-06 18:50:14 +08:00
Ax1an a3ae7b4dc6
Fix no data bug of oap self observability instance_metrics_second_aggregation metrics. (#5028) 2020-07-06 13:03:36 +08:00
Gao Hongtao 1654a0fbf0
Add opencensus reciever (#5029)
Signed-off-by: Gao Hongtao <hanahmily@gmail.com>
2020-07-05 20:53:16 +08:00
Daming d264f914d5
Fix timebucket conversion issue (#5014) 2020-07-02 22:05:03 +08:00
吴晟 Wu Sheng 6103ca9256
Fix wrong validation. (#5005) 2020-07-01 19:06:12 +08:00
吴晟 Wu Sheng ea6be5b645
Fix endpoint dependency bug in MQ and uninstrumented proxy cases, and support endpoint dependency(v2 of endpoint topology case). (#4995) 2020-06-30 20:59:38 +08:00
吴晟 Wu Sheng a93f1b3c3c
Support `logic-endpoint` series tag(s). (#4985)
* Support `logic-endpoint` series tag(s).

* Enhance the plugin dev doc.

* Update Java-Plugin-Development-Guide.md

fix punctuation

Co-authored-by: caoyixiong <32847163+IanCao@users.noreply.github.com>
2020-06-30 00:07:53 +08:00
dagmom 08897ce5f8
New feature provided : new plugin for influxdb-java client (#4846) 2020-06-21 22:35:45 +08:00
于玉桔 c778a0d6c2
Support Quasar fiber tracing (#4951) 2020-06-20 22:30:03 +08:00
吴晟 Wu Sheng b07b395691
Fix 4 high priority bugs (#4913) 2020-06-12 12:07:45 +08:00
Gao Hongtao 5038f07094
Update prometheus fetcher for so11y (#4902) 2020-06-11 16:58:28 +08:00
Jared Tan 202d5711d4
fix NPE when fetch empty readHeatMap metrics. (#4891) 2020-06-09 21:22:12 +08:00
Gao Hongtao 4f0f39ffcc
Ingest prometheus metrics through meter system (#4783) 2020-06-08 09:19:34 +08:00
吴晟 Wu Sheng d094a0f7c0
Support UI template management. (#4843) 2020-06-01 23:06:14 +08:00
dvsv2 605d2449f2
ApdexMetrics Change type of `totalNum`、`sSum`,`tNum` from int to long (#4839) 2020-05-29 17:05:45 +08:00
吴晟 Wu Sheng fed62aa731
Fix #4813 (#4815) 2020-05-23 14:55:43 +08:00
吴晟 Wu Sheng a10e044932
Group Parameterized Endpoints (#4802)
* Group Parameterized Endpoints. Configure the grouping rules for parameterized endpoints, to improve the meaning of the metrics.
2020-05-20 22:50:22 +08:00
Evan 1652e0c057
Add a SuperDataset tag for custom super size dataset shards config in es storage (#4793)
* add SuperDataset tag for add super size dataset shards config in es
2020-05-17 17:48:15 +08:00
吴晟 Wu Sheng c5f0591e06
Fix the wrong sortN condition (#4784) 2020-05-14 11:36:32 +08:00
mrproliu 749af3e04e
Alarm support multiple scope (#4769)
* 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>
2020-05-11 00:28:10 +08:00
吴晟 Wu Sheng 2880699860
Make OAL controlled by the receivers. (#4767)
* Split the official_analysis.oal into different parts

* Add Envoy OAL define.

* Fix license.
2020-05-09 21:39:19 +08:00
zhang-wei d4f3218dea
Support define multiple OAL configuration (#4748) 2020-05-08 23:53:49 +08:00
吴晟 Wu Sheng 7edcd5aa33
Change the model installation into the reactive module (#4761) 2020-05-08 21:21:03 +08:00
吴晟 Wu Sheng 377315edbb
Make sure the DB service could be generated. (#4757) 2020-05-08 11:14:16 +08:00
吴晟 Wu Sheng 07cc984d73
Polish metrics logic, fix service traffic bug (#4754)
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.
2020-05-07 23:00:38 +08:00
Efe Kaptan d19ba41678
Mariadb JDBC plugin (#4740)
* 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>
2020-05-07 20:54:30 +08:00
吴晟 Wu Sheng fac4ddc9e8
Fix two serious bugs. (#4741) 2020-05-05 12:55:14 +08:00
kezhenxu94 7b071bd7f7
Fix nested query and type conversion in MySQL, remove unused codes (#4738) 2020-05-04 13:54:12 +08:00
吴晟 Wu Sheng a2eddd699e
Fix the cache unclear bug. (#4739)
* Fix the cache unclear bug.

* Update LimitedSizeBufferedData.java

Co-authored-by: kezhenxu94 <kezhenxu94@apache.org>
2020-05-04 10:46:11 +08:00
吴晟 Wu Sheng 6d389dc119
Optimize aggregation in L1 and L2. (#4735) 2020-04-30 16:27:57 +08:00
吴晟 Wu Sheng d97af96c85
New ReadWriteSafeCache. Rewrite the whole Window and Collection. Simplify codes (#4733)
* Rewrite the whole window and collection to new ReadWriteSafeCache.

* Remove redundant fields.
2020-04-29 22:23:21 +08:00
吴晟 Wu Sheng 217bb624f6
Support percentile function in the meter system. (#4725)
* Support percentile function in the meter system.

* Update document.

* Fix formats.
2020-04-29 08:43:26 +08:00
吴晟 Wu Sheng 7c84e77bf2
Support histogram function in Meter system. (#4719)
* Support histogram function in Meter system.
* Add histogram in the document.
* Support infinite-
2020-04-27 14:38:38 +08:00
吴晟 Wu Sheng 071708a4a3
Support default value in labeled-value and heatmap query. (#4711)
* Support default value in labeled-value and heatmap query.

* Update a little document.
2020-04-25 21:24:15 +08:00
吴晟 Wu Sheng b635e254c4
Provide Meter(metrics) system (#4694)
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.
2020-04-24 23:33:13 +08:00
吴晟 Wu Sheng 991d083378
Support typeOfMetrics query (#4686)
* 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.
2020-04-22 13:14:59 +08:00
mrproliu 7de392af65
fix cache update timer exception when disable profile in the backend (#4682)
* fix cache update timer exception when disable profile in the backend

* add comment

Co-authored-by: Mrproliu <mrproliu@lagou.com>
Co-authored-by: 吴晟 Wu Sheng <wu.sheng@foxmail.com>
2020-04-21 18:59:17 +08:00
吴晟 Wu Sheng 418bdff277
New metrics query protocol v2 (#4679)
1. Support the new query protocol, and the v1 query protocol is still supported 
2. All `numOfxxx`/`GlobalBrief` is only a mock now, no real number.
3. typeOfMetrics service is a mock only too, follow up PR will implement this.
2020-04-21 15:39:18 +08:00
kezhenxu94 c11ad038cc
Count the coverage in E2E tests and Plugin tests (#4651) 2020-04-15 23:09:05 +08:00
吴晟 Wu Sheng 44cae97c25
Set up restrict length rules for service, instance and endpoint (#4633)
* Set up restrict length rules for service, instance and endpoint

* Adjust two env names.
2020-04-10 17:59:21 +08:00
吴晟 Wu Sheng 6fe2041b47
Make 8.0.0 Core available. New protocol and register removed. (#4599)
Here are the list of changes we made in this pull request. Top 3 are the principle changes, others are following these principles.
1. New agent and mesh report protocol. 
2. New agent header protocol. 
3. Service register, instance register and network address register have been removed permanently.
4. Service traffic, instance traffic and network alias metrics are added to replace the service, instance and network address inventory.
5. Register process has been removed.
6. Metrics stream process supports insert only mode, especially for traffic entities.
7. Metrics stream process supports no-downsampling mode for traffic entities and network alias.
8. Remove all register mechanism and cache in the java agent.
9. Remove MONTH step in GraphQL query.
10. Update UI to remove MONTH step query, the max query range is 60 days now.
11. Simplify the TTL to metrics and record. And the unit has been formatted in Day unit. No specific TTL for ElasticSearch storage.
12. Buffer mechanism of trace receiver and mesh receiver has been removed due to no register.
13. New service id, instance id and endpoint id rules, including service relation, instance relation and endpoint relation id rules.
14. Java agent support `keep tracing` mode, meaning, agent generating tracing context even the backend is unconnected/unavailable.
15. Plugin test tool up to date, in order to support new protocol.
16. Plugin tests expected data files updated.
17. E2E tests updated.
18. Telemetry of Grafana config has been merged into one.
19. Documentation updates.
20. [TBD] InfluxDB storage implementation is not available, need @dmsolr to fix later, in order to reduce the master change block by this PR.
2020-04-10 11:03:24 +08:00
吴晟 Wu Sheng 54fb6e7285
Set the endpoint name length to 150, to keep safe and avoid over-length. (#4595)
* Set the endpoint name length to 150, to keep safe and avoid over-length.

* Set endpointNameMaxLength in the application.yml

* Fix a mischange.

* Correct the endpoint name length control logic

Co-authored-by: kezhenxu94 <kezhenxu94@apache.org>
2020-03-31 09:04:10 +08:00
kezhenxu94 b28b811af7
[BugFix] Fix wrong H2 column type (#4593)
MEDIUMTEXT in H2 is CLOB in JDBC type, and casting it to `String` causes `ClassCastException`
2020-03-31 00:04:17 +08:00
吴晟 Wu Sheng e55073e519
OAP Core polish, especially storage level (#4587)
- Add length definition with reasonable default value.
- #content of @Column has been renamed to storageOnly . I add this to many fields as they are not being query in any case.
- Merge H2 and MySQL columntype mapping back to consistent.
- Remove @IDColumn.
- Support @QueryUnifiedIndex.
- Refactor the MySQL and H2 installers to use @Column and @QueryUnifiedIndex definitions to create indices automatically. But the index naming rule has been changed to entityseqIDX. seq is the Increment Interger for every entity.
- Support @MetricsExtension and insertOnly in the MetricsPersistentWorker worker.
- Optimize MetricsStreamProcessor
2020-03-30 18:56:26 +08:00
吴晟 Wu Sheng 4474907fef
[Inventory Design Change] Remove endpoint register and endpoint inventory (#4570)
* Finish step one, source and entity changed.

* Step 2, finish the basic and core DAO changes.

* Step 3. Change all source codes of backend, and make project compiling successfully.

* Make startup successful and persistence works.

* Fix dead codes in the MySQLTableInstaller.

* Fix mischange.

* Fix MySQL storage bootstrap error.

* Rollback dependency change.

* Simply enable tailing logs from container no mater it's in CI or not

* Fix segment table issue.

* Fix MySQL Instanller.

* Support Influxdb implementation of new endpoint traffic.

* Set and modify timeout to 90mins

* Remove unnecessary entity in the EndpointTraffic.

* Fix wrong entity builder and make name more clear.

* Fix 2 equal methods bug.

* Fix InfluxDB identifier(name) conflict issue.

* Fix endpoint topology query, endpoint id should be changed as a string.

* Fix a missing change.

* Fix a wrong commit.

* Column name can't be changed, due to it affect the hybrid metadb(h2/mysql) query, change it explicitly with double quotation marks.

* Fix formats.

* Remove endpoint/operation register from the agent. and change the plugin tests(without local tests). operationId relation codes have been removed from agent too.

* Try to fix the hytrix case.

* Fix 3 cases.

* Try to fix cases.

* Fix 2.

* Fix one.

* Fix the serviceId type mis-change.

* Fix int query

* Fix hystrix case.

* Fix a case.

* Fix EndpointCallRelationDispatcher set the source/dest endpoint without id encoding.

* Update documentation and add 2 test cases.

Co-authored-by: kezhenxu94 <kezhenxu94@163.com>
2020-03-28 22:51:41 +08:00