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.
### Motivation
Ease the efforts of modifying configurations in automatic workflow and scripts, like Docker and helm chart.
### Modification
Add a `selector` property into `application.yml` to enable switching configuration simply by environment variables or system properties, and filter the unselected options, leaving only selected one.
### Result
- We can switch a configuration by environment variables or system property
- Closes#4511
* [Feature] Officially support ElasticSearch 7 as backend storage
* Extract bootstrap module to be shared by multiple starters
* Add missing configuration file and distinguish different version in test
* Update known-oap-backend-dependencies-es7.txt
Update the dependency lib
* Fix missing adaptation to ElasticSearch 7
* Rename ElasticSearch 7 specific class with Es7 infix
* Fix miss-adapted ElasticSearch DAO API
* Add ES7 specific configuration and polish documentations
* Polish documentations
* Polish documentations
* Is it a typo or not?
* delete datasource-settings.properties
* handle 'metadataQueryMaxSize'
* delete DynamicModuleConfig.java
* modify mysql config
* parsing yaml to support the configuration for multiple properties
* delete datasource-settings.properties
* modify doc
* add properties for docker-entrypoint.sh
* add testLoadConfig()
* The new feature of Elasticsearch storage with the time series implementation.
* Time bucket util improve.
* Fixed some Gramma error.
* Update ttl.md
Polish English a little.
* Update ttl.md
Add more explicit description of TTL
* Update ttl.md
* Update StorageModuleElasticsearchConfig.java
Set otherMetricsDataTTL = 0 as default, make user more clear.
* Rename the timeSeriesAble to capableOfTimeSeries
* Fixed a test case failure.
* Make Jaeger receiver works in 12450 as default.
* Finish compile and codebase.
* Make codes runnable.
* Finish Jaeger query tests.
* Add document for jaeger receiver.
* Add readme.
* Fix a break link.
* Finish doc.
* Codebase for zipkin span persistence.
* Fix missing fields in storage.
* Miss the latency field.
* Finish some tests.
* Fix wrong latency.
* Finish doc and reset application.yml
* Make the description more clear.
* Added elasticsearch warehouse certification support
* Add the elasticsearch service for Http Basic instructions
* Update backend-storage.md
Change document.
* Replace v5 changes by a link to 5.x branch. New v6 changelog.
* Finish query doc and fix a missing field in alarm doc.
* Add link to official oal in alarm doc.
* Fix words.
* Fix some doc
* Update README.md
* Update README.md
* Update README.md
* Update README.md