* [maven-release-plugin] prepare release v9.5.0
* [maven-release-plugin] prepare for next development iteration
* Create changes-9.5.0.md
* Set changes.md for 9.6.0
- `./mvnw test ...` by its nature only runs unit tests, whose name is pattern of `*Test`, and it does never runs integration tests, whose name is patter of `IT*` or `*IT`, so in this PR we use `./mvnw clean test ...` to only run unit tests.
- `./mvnw integration-test ...` will run integration tests and unit tests, so we have `skipUTs` to control whether to skip the UT when running ITs, we already had this before.
- As for ITs, we have two groups, one is normal tests without any `@Tag`s, the other one is slow integration tests, which is annotated with `@Tag("slow")`, so we divided the integration tests into two workflow jobs:
- `./mvnw -DskipUTs=true clean integration-test -DexcludedGroups=slow ...` run the ITs but don't run the slow ITs and UTs, `-DexcludedGroups=slow` excludes tests annotated with `@Tag("slow")`
- `./mvnw -DskipUTs=true clean integration-test -Dcheckstyle.skip -Dtest=${{ matrix.test.class }}` run the slow ITs (because `excludedGroups` is not set) one case at a time, by setting `-Dtest={{ class }}`, not run UTs,
[Critical] Fix a low-performance issue of metrics persistent in the ElasticSearch storage implementation. One single metric could have to wait for an unnecessary 7~10s(System Env Variable SW_STORAGE_ES_FLUSH_INTERVAL).
This is a solid and critical performance issue, from the self-observability metric, we could find one metric that would need 7-10s to execute the data flush, which is not expected.
Optimize ElasticSearch query performance by using `_mGet` and physical index name rather than alias in these scenarios:
(a) Metrics aggregation
(b) Zipkin query
(c) Metrics query
(d) Log query
* Fix event type of export data is incorrect, it was `EventType.TOTAL` always.
* Reduce redundancy ThreadLocal in MAL core. Improve MAL performance.
* ExpressionDelegate public->private
Previous logic can't update the mappings `properties parameters` and `_source` only support adding a new property.
### Now
1. As the OAP core merges the index of metrics, properties would not be deleted still.
2. Would not update the current index to avoid conflict, a new index follows the new template to create.
**Warning**, if there are properties conflicts, same key with different values, they would override each other according to booting sequence. Unless we change booting process as merging modules before merging with existing templates and indices, we can't add check mechanism and warnings.
* Add storage column attribute `indexOnly`, support ElasticSearch only index and not store some fields.
* Add `indexOnly=true` to `SegmentRecord.tags`, to reduce unnecessary storage.
The ES persistence execution is now asynchronous and the execution
latency only counts the time to insert the requests into the bulk
processor, instead of the time after the requests are flushed into the
storage, this patch fixes that issue.
There is the same issue in prepare latency but that needs more changes
so I'll leave it to another pull request.
* [maven-release-plugin] prepare release v8.8.0
* [maven-release-plugin] prepare for next development iteration
* Create changes-8.8.0.md
* Reset changelog for 8.9.0