Motivation:
According the feedback from the community, the e2e tests are hard for
them to understand and get them started, so this pull request aims to
rewrite the e2e tests with some improvements:
- debuggable locally, now you can run every individual case directly
inside the IDE, just like running a plain unit test.
- same functionalities of multiple counterparts share the same codes,
cases like different storages and cluster coordinators share the same
codes, easy to add more similar cases.
- the "end" now extends to the Doccker images, meaning that some bugs
like #4483 and #4471 can be more easily and early to be discovered.
- codes style and license headers are checked
Modifications:
- adopt jupeter (a.k.a junit 5), testcontainers as the new test
framework, all containers are orchestrated by docker-compose.yml,
well-known technology that developers should be familiar with.
- rewrite all test cases and verify them.
- reorganize the workflows in GitHub Actions.
Result:
- new e2e test should be easy to add.
- closes https://github.com/apache/skywalking/issues/4472
### 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
* #4463 FAQ for Maven compilation failure with error like python2 not found
* #4463 FAQ for Maven compilation failure with error like python2 not found
* Update maven-compile-npm-failure.md
* Update docs/en/FAQ/README.md
Co-Authored-By: 吴晟 Wu Sheng <wu.sheng@foxmail.com>
* Update docs/en/FAQ/maven-compile-npm-failure.md
Co-authored-by: kezhenxu94 <kezhenxu94@163.com>
Co-authored-by: 吴晟 Wu Sheng <wu.sheng@foxmail.com>
* Support dynamic column in the source.
* Support activeExtraModelColumns as a default OFF option.
* Fix words
* Update backend-setup.md
Fix format issue.
Motivation:
Review code styles with some bots automatically.
Modifications:
Set up ReviewDog in GitHub Action to review code style.
Add more check rules to checkstyle plugin.
Result:
Obvious code styles can be reviewed and commented automatically.
* Make an alternative method while cloning skywalking project and sync submodules
* Add language type for code block
* Intend code blocks under list block
* Make list number same
* Move a tip about building from source codes.
Co-authored-by: 吴晟 Wu Sheng <wu.sheng@foxmail.com>
* sniffer processing profile task and report status and snapshot
* resolve testServiceDependencies test case error, use same register with `TraceSegmentServiceClient`
* resolve names
* change profile to single one thread run.
* 1. change to the ArrayList, because known the max size
2. rename issue resolved
* add profiling status enum
* change sniffer use full name issue
* 1. remove `prepareProfiling` method, build profiling status when construct `TracingContext`
2. add `TracingThreadListenerManager`, notify when tracing main thread finish
3. change ProfileThread start when process new profile task
* remove unnecessary getter
* add test assert error message
* adding `AgentServiceRule`
* revert original assert
* remove unnecessary getter
* resolve issues
* reduce findService invoke
* resolve style error
* recheck profiling when change first span operatin name
* resolve issues
1. remove `ContextManager#profilingRecheck`, only check on `TracingContext`
2. rename comments
3. resolve volatile array setting
* remove article link
* add `ProfileTask#maxSamplingCount` check
* resolve conflict (Downstream -> Commands)
* 1. change profilingSegmentSlots init on construct
2. if is profiling, recheck dont need to stop
3. total profiling count increment on first dump
* remove unused return val
* remove some `@param` and `@return`
* add profile task check result data bean
* change profiler slot to `AtomicReferenceArray`
* resolved java doc error
* fix doc error, remove meaningless descriptions
* resolve missed profile receiver on oap starter
* resolve method invoke error
Co-authored-by: 吴晟 Wu Sheng <wu.sheng@foxmail.com>
Co-authored-by: kezhenxu94 <kezhenxu94@163.com>
* Support new percentile func with new alarm and exporter for this new func.
* Fix e2e and OAL script
* Fix wrong column.
* Fix percentile bug and oal engine bug.
* Update query protocol and add percentile test case
* Support new query
* Adopt GraphQL requirement
* Fix wrong type cast.
* Fix query in H2 and ES.
* Fix docs and comments.
* Fix an e2e compile issue
* Fix javadoc issue and e2e test issue.
* Change CPM to Apdex in TTL test.
* Fix OAL for TTL e2e
* Add metrics query for service percentile.
* Fix OAL engine bug. Method deserialize is not working when more than two field types are IntKeyLongValueHashMap
* Support multiple IntKeyLongValueHashMap fields in remote. About serialize/deserialize methods.
* Fix graphql statement error in e2e.
* Fix serialize not working and add generated serialize/deserialize of percentile into test cases.
* Fix test case format
* Remove generated code test.
* Fix failed e2e test
* Use avg resp time to apdex in the TTL test.
* ADD multiple linear metrics check for endpoint in e2e cluster.
* Support `-` to represent no threshold and doc of alarm about this.
* Move break to right place.
* Fix wrong break(s)
* Fix break and add a test case for multiple values alarm.
* Fix format.
* Add more doc for this new feature and GraphQL query protocol.
Co-authored-by: Jared Tan <jian.tan@daocloud.io>
Co-authored-by: kezhenxu94 <kezhenxu94@163.com>
* Provide profile task downstream to sniffer
* fix agent unit testcase issue
* add profile switch config on sniffer
* fix es error
* 1. add @DefaultImplementor on the sniffer profile task service
2. change ProfileTaskExecutionService#PROFILE_TASK_READY_SCHEDULE to final and remove volatile
2. fix style error
* change timeFromStartMills use `<` to compare
* 1. add `maxSamplingCount` to profile task
2. make profile task limit to the common package
* 1. change `agent.active_profile` to `profile.active` and make true on default
2. add `maxSamplingCount` in profile task
3. use `createTime` to check has new command list
4. add task re-check before process profile task
* 1. add `profile-receiver` document
2. change `ProfileTaskExecutionService` use single schedule thread pool
3. cache dont need fetch data when no data, use auto-fresh mechanism only
* remove navigate time judge, fix comment wrong meaning
* Add es7 support to docker
* Add es7 to github aciton workflow
* Rename dockerfile
* Update docker-compose
* Update matrix es name
* Set oap tag
* Add document
* Update How-to-build.md
* [Feature] Add tag annotation to allow tagging span with annotation
* Use repeatable annotation syntax and add docs and example codes
* Fix failed unit test
* Add play-scenario
* Set play plugin as default
Co-authored-by: 吴晟 Wu Sheng <wu.sheng@foxmail.com>
Co-authored-by: Weiyi Liu <liuweiyi@cmss.chinamobile.com>
* Update JDK compiling level to 8, and remove zip dist.
* Exclude annotation and shade API.
* Fix more exclusion.
* 1. Update grava and gson 2. Fix compile issue. 3. Keep protoc and maven plugin in old version. Some incompatible of 3rd party grpc proto.
* Fix dependency conflicts, license and notice issue, and dependency check script issue
Co-authored-by: kezhenxu94 <kezhenxu94@163.com>
* Add more users and typical enterprises.
* Adjust some descriptions.
* Add more companies into powered-by page and root readme.
* Fix typo.
* Add one more bank.
* Remove the local span and exit span register mechanism in Java agent scenario.
* Fix config, plugin, and document, as exit span is not required register anymore.
* Try to fix the test case expected data due to no register for exit span.
* Fix toolkit case.
* Remove exit span from plugin test framework document.
* Update protocol, FAQ, and CHANGELOG documents to highlight this change.
* Fix NPE when no entry span in the whole segment. Set endpoint to null in segment entity.
* Fix the snapshot and add inexistence operation name id.
* Fix several async cases.
* Fix undertow test case.
* Fix wrong error log name.
* Keep name consistent with 6.x concepts.
* Try to fix 3 async scenarios.
* Fix okhttp case.
* Fix Spring Async case.
* Fix another NPE
* Fix NPE when first span has no endpoint id when it is local or exit span.
* Still fill first operation name when no endpoint id.
* Add apdex function to OAL
* Add empty line
* Setup config watcher
* Add identifier type to function parameter
* Add config test
* Update score algorithm
* Replace responseCode with status
* Add comments about apdex score algorithm
* Add docs
* Add e2e test case
* Update test case
* Fix disptch class generating error
* Update value name of apdex metric
* Tuning threshold
* Fix single tolerated point bug
* [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
* add SupplierWrapper to support java 1.8+
Signed-off-by: shixiang <xiang.shi001@bkjk.com>
* add SupplierWrapper to support java 1.8+
Signed-off-by: shixiang <xiang.shi001@bkjk.com>
* Update SupplierWrapper.java
add new line
* add supplier
* add supplier test
* add test
* add test yaml
* Update Application-toolkit-trace-cross-thread.md
Add how to use SupplierWrapper in Java 1.8+
* feat: add support of mongodb v3.7.x or higher
* feat: remove mapping, using EnhancedInstance to mark remotePeer
* feat: add support of v3.6.x
* fix: disable support will 3.6.x, which will throw ClassCircularityError exception
* style: clean code
* fix support of 3.8.x~3.11.1, update test case and doc
* update stage name
* rename class
* rename stage
* Add register persistent worker latency metrics #3671
* remove never thrown exception on Time#close()
add panel to mesh-mode-grafana.json
* remove never thrown exception on Time#close()
add panel to mesh-mode-grafana.json
* add plugin netty-socketio https://github.com/mrniko/netty-socketio
* delete create exit span interceptor.
* delete create exit span interceptor testcase.
* delete create exit span interceptor testcase.
* add constructor test unit
* change bind on random port in test case
* reverse upstream master whitespace
* resolve build_id param
* delete health check segment test case
* add ContextManager.isActive check before use activeSpan invoke
* remove unnecessary code and blank line
* 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()
* Provide Consul dynamic configuration center implementation
* Add more unit tests
* Fix unit test
* Add more unit tests and remove unused file
* Remove redundant doc
* Add pulsar apm plugin.
* Fix check style
* Fix pulsar consumer component define.
* Add pulsar to component-libraries.yml
* Fix error interceptor class.
* Add pulsar to agent support list.
* Add Pulsar to ComponentsDefine and component-libraries.yml
* Move create entry span log of consumer from after method to before method
* Fix send callback issue when exception cause.
* Fix test issues
* Move pulsar plugin to optional plugins
* Add none messages tests for interceptor of producer and consumer.
* Remove unused comments.
* Move pulsar plugin back to the apm-sdk-plugin
* Fix comments
* remove set startTime for entry span(default is set by System.currentTimeMillis)
* Fix comments
* Add Light4J 1.6.x plug-in
* Add unit test for Light4J plug-in
* Add missing id to server-starter
* Remove mentions of version 1.6.x
Some local testing showed that the plugin successfully generated traces for a light4j project built with light-codegen v2.x. Therefore, there is no need for a separate plugin for v2.x and no distinction needs to be made with light4j v1.6.x.
* Update supported light4j versions
* Use ContextSnapshot to maintain trace
In a typical Light4j project, the ExceptionHandler#handleRequest is the asynchronous execution point. The flow is ExceptionHandler#handleRequest -> HttpServerExchange#dispatch -> ... -> ExceptionHandler#handleRequest. This means that handleRequest is being intercepted twice and each time a LocalSpan is created. Without handling thread propagation, the trace segment gets split up.
By saving a ContextSnapshot into the enhanced object (ExceptionHandler), we can determine if it is necessary to continue the segment.
* Update logic for span creation in trace
By default, the Light4J plugin now overrides the Undertow plugin's entry span with its own. This new entry span is created just before execution of the ExceptionHandler#handleRequest in the I/O thread. The entry span is generated here because it is considered the starting point of the Light4J handler chain.
There is now also the option to enable detailed span creation when tracing requests through Light4J. These local spans mark which middleware and business handlers are involved with handling the HTTP request to a Light4J service.
* Update skywalking version
* Update light4j version
* Fix LightInstrumentation javadoc
* Remove import violating checkstyle
This import was added from the link reference in the javadoc. The javadoc has now been changed to just reference the method name.
* Move light4j agent config property
* Sync UI
* add logstash logback plugin
* add logstash logback plugin, set pom provided, refine logback doc
* refine logstash logback doc
* refine the comment
* remove the app_id that not related to SkyWalking
* remove tag @date for CI error: unknown tag: date
* add description for iLoggingEvent for ci warning: no description for @param
* Support op group name in agent config core.
* Provide core API for operation name grouping, rest template plugin update, and doc update.
* Fix doc
* Fix test case.
* Fix missing changes.
* add shuyun to powered-by.md (#3341)
* add shuyun to powered-by.md
* update powered-by.md
* Remove static method.
* POC: Intercept successfully.
* Refactor codes
* Build the new core
* Setup the new core.
* Push the javassist version to 3.23.2-GA, as it is the last version supports JDK 1.6 compile, according to https://github.com/jboss-javassist/javassist/blob/rel_3_23_2_ga/pom.xml#L149-L160
* Finish the all codes.
* Document updated for bootstrap instrumentation.
* Add a notice to document.
* Remove unexpected file.
* Set javassist version right. Add judge in core interceptors
* Fixe no log bridge implementation
* Change OAL generator tool to runtime.
Step 1. change project structure. API links and maven pom.
* Part of metrics class generation
* Metrcis class generated.
* Set up the basic structure of new OAL engine.
* Finish metrics generation.
* Support dispatcher generation.
* Format codes.
* Generate dispatcher all methods.
* Implement disable in hardcode.
* Clear up
* Fix compile startup.
* Update license and document of new OAL engine.
* Fix rat.
* Disable class output in default
* Copy from @kezhenxu94 's test PR, https://github.com/apache/skywalking/pull/3110
* Wait for the mount command to finish
* Support bootstrap class enhance and fix OOM by empty stack of exception.
* Agent document update
* Remove a word.
* Fix wrong cause exception search.
* Fix the condition
* Revert bootstrap class loader enhance.
* Remove import.
* no message
* Revert SolrJ plugin.
* Remove an unexpected test case.
* Revert "Remove an unexpected test case."
This reverts commit 359990e18b0c0ae1a6e1005ff985bf237ec05619.
* Clear context.
* Fix a leak.
* new branch for solrj-plugin
* rollback and add module solrj-plugin
* preparing to pr
* to resolve reviewers' suggestions
* remove unused code
* remove unused code
* remove unused comments
* To avoid NPE
* fix typo
* Change to JRE6
* fix pom.xml merge incorrectly. and java.net.URL instead of Regex
* Using RuntimeContext instead of ThreadLocal
* To reduce unnecessary tags
* add test cases
* fix validation fail
* add solrj-plugin into component-libraries & Supported-list
* to trace all patch to avoid recheck status of span
* remove unnecessary properites
* remove unnecessary tags
* Add the config to document of setup
* 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.
* merge
* merge
* Provide plugin for ShardingSphere (#2699)
* Provide plugin for ShardingSphere (#2699)
* Provide plugin for ShardingSphere (#2699)
* adjust package name (#2699)
* fix mvnw (#2699)
* revert files access permission from 644 to 755
* change the access permission from 644 to 755
* change files access permission from 644 to 755
* revert all no changes files
* 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.
* Move all receiver proto files together, in case the class conflict in gogoproto.
* Add jaeger proto and its dependency proto. Also license provided.
* Fix rat.
* 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.
* Support grpc exporter.
* Support scope(all) metric export and finish document.
* Close exporter even in local debug env. And fix CI.
* Remove the system.out
* Fix absent 4.
* Support subscription from remote.
* Add the doc
* Update application.yml
* Added elasticsearch warehouse certification support
* Add the elasticsearch service for Http Basic instructions
* Update backend-storage.md
Change document.
* Add envoy metrics service protos
This patch imports protos from envoyproxy/data-plane-api and
prometheus/client_model to enable metrics service service feature in
SkyWalking OAP.
Signed-off-by: Dhi Aurrahman <dio@tetrate.io>
* Add Envoy related docs
Signed-off-by: Dhi Aurrahman <dio@tetrate.io>
* Update the LICENSE to include new protos license
From:
- envoyproxy/data-plane-api
- prometheus/client_model
Signed-off-by: Dhi Aurrahman <dio@tetrate.io>
* Add a complete config.yaml example
Signed-off-by: Dhi Aurrahman <dio@tetrate.io>
* Add note on Envoy dynamic config
Signed-off-by: Dhi Aurrahman <dio@tetrate.io>
* Add protoc-gen-validate license
Signed-off-by: Dhi Aurrahman <dio@tetrate.io>
* Add samples
Signed-off-by: Dhi Aurrahman <dio@tetrate.io>
* Make CI and license right.
* Update README.md
@dhi typo :P
* Update README.md
Another typo :P
* Delete metrics.json
metrics.json is included in identify.json and not be linked in document.
* Make scope meta configurable.
* Fix test cases in ci.
* Change step 1
* Refactor step 2
* Other compile issue done. Prepare the generator changes.
* Revert some wrong changes to Istio receiver.
* Step 3, make compile pass.
* Try to make CI passed.
* Add a check.
* Fix generated code style
* Provide new and extendable dispatcher generator tool
* Fix startup.
* Can't guarantee the dispatchers are always existing. Put explicit comments at there to avoid confusion, since this is different with old version.
* Fix a H2 query for endpoint search.
* Fix a wrong mysql alarm query.
* Provide new document and `generate-tool-grammer` module.
* Add missing last section of document.
* Fix typo
* Relocate the @ScopeDeclaration annotation, make it more sense. Also remove the useless @SourceType annotation. And adjust document for these changes
* ScopeDeclaration can be used once for each class only, now.
* Support to register different host/port at cluster coordinator. Only for Zookeeper and Consul
* Provide document for internalComHost and internalComPort
* Reset port to default.
* Change a label name for sw instance to avoid confict.
* Fix a wrong metric name.
* Fix too many counter instances.
* Set uptime to second.
* Fix format.
* Fix format
* Remove two unnecessary counter.
* Provide grafana dashboard settings and remove unnecessary metric.
* Provide a simple UI brief doc. Fix#2137
* Finish the basic codes of telemetry.
* Add many telemetry in oap.
* Fix a test case.
* Finish all telemetry metric.
* Fix format.
* Make telemetry works.
* Support JVM metrics.
* Add doc for telemetry.
* Fix typo.
* Fix#2135
* Update How-to-release.md
The public gpg file name should be KEYS, not KEY. It will contains other PMCs public key in this file after you export from the gpg tools.
* Provide consul cluster plugin.
* Change log and application config file.
* Add consul's config item into the docker's application.yml.
* Fixed bug.
* Add consul description into readme.
* Add okhttp component license.
* Move oal tool back into main repo, and fix compile issue.
* Fix two bugs.
* Remove all generated codes.
* Make all oal generated codes out of source control.
* Make mvn compile and package work.
* Fix test cases.
* Make compile right and provide new documents.
* Remove an unnecessary tokens file.
* Support alarm in service instance and endpoint.
* Fix alarm default settings and document.
* Fix wrong default setting
* Make service instance and endpoint scopes available in alarm core.
* Fix alarm bug.
* feat:Active System.env Config In Both Collector And agent.config.
1、moving related codes into apm-util module.
2、update Setting-override.md about how to use.
* resolve docs.
* typo
* finish test case.
* Update README.md
* Update powered-by.md
Guazi.com and Maodou.com are using Apache SkyWalking for research and production,
and providing commercial products including Apache SkyWalking.
* Update powered-by.md
Fix order.
* Update new protocol
* Support new protocol at agent side.
* Fix test case.
* Make backend supports new trace protocol
* Fix tests.
* Make all new services available in gRPC.
* Fix bugs.
* Finish new document for v2 trace protocol.
* Fix wrong version requirement of zk
* Fix trace query bug.
* Find a client side dictionary bug.
* Fix register bugs.
* Fix break doc links.
* Change some codes to make zipkin receiver works, not done yet.
* @adriancole Zipkin receiver is coming back again.
* Fix document and fix for Zipkin receiver.
* Fix some bugs.
* Fix register bug.
* Fix transfer bug for new backend core.
* Support for overriding config with agent options
* Test the separator of options
* support quotes in agent options
* revert imports change
* add more tests
* clear properties after each test
* add document
* fix code style
* Lock oracle and resin plugins version.
* Move resin and oracle plugin to openskywalking
* Restore submodule active.
* Add another submodule active command.
* Remove the wrong test cases in release and fix some doc issues.
* [maven-release-plugin] prepare release v6.0.0-alpha
* [maven-release-plugin] prepare for next development iteration
* Fix some doc