# Guides
There are many ways you can contribute to the SkyWalking community.
- Go through our documents, and point out or fix a problem. Translate the documents into other languages.
- Download our [releases](http://skywalking.apache.org/downloads/), try to monitor your applications, and provide feedback to us.
- Read our source codes. For details, reach out to us.
- If you find any bugs, [submit an issue](https://github.com/apache/skywalking/issues). You can also try to fix it.
- Find [`good first issue` issues](https://github.com/apache/skywalking/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22). This is a good place for you to start.
- Submit an issue or start a discussion at [GitHub issue](https://github.com/apache/skywalking/issues/new).
- See all mail list discussions at [website list review](https://lists.apache.org/[email protected]).
If you are already a SkyWalking committer, you can log in and use the mail list in the browser mode. Otherwise, subscribe following the step below.
- Issue reports and discussions may also take place via `[email protected]`.
Mail to `[email protected]`, and follow the instructions in the reply to subscribe to the mail list.
## Contact Us
All the following channels are open to the community.
* Submit an [issue](https://github.com/apache/skywalking/issues) for an issue or feature proposal.
* Mail list: **[email protected]**. Mail to `[email protected]`. Follow the instructions in the reply to subscribe to the mail list.
* Submit a [discussion](https://github.com/apache/skywalking/issues) to ask questions.
## Become an official Apache SkyWalking Committer
The PMC assesses the contributions of every contributor, including their code contributions. It also promotes, votes on, and invites new committers and PMC members according to the Apache guides.
See [Become official Apache SkyWalking Committer](asf/committer.md) for more details.
## For code developer
For developers, the starting point is the [Compiling Guide](How-to-build.md). It guides developers on how to build the project in local and set up the environment.
### Integration Tests
After setting up the environment and writing your codes, to facilitate integration with the SkyWalking project, you'll
need to run tests locally to verify that your codes would not break any existing features,
as well as write some unit test (UT) codes to verify that the new codes would work well. This will prevent them from being broken by future contributors.
If the new codes involve other components or libraries, you should also write integration tests (IT).
SkyWalking leverages the plugin `maven-surefire-plugin` to run the UTs and uses `maven-failsafe-plugin`
to run the ITs. `maven-surefire-plugin` excludes ITs (whose class name starts with `IT`)
and leaves them for `maven-failsafe-plugin` to run, which is bound to the `verify` goal.
Therefore, to run the UTs, try `./mvnw clean test`, which only runs the UTs but not the ITs.
If you would like to run the ITs, please set the property `skipITs` to false
as well as the profiles of the modules whose ITs you want to run.
E.g. if you would like to run the ITs in `oap-server`, try `./mvnw -Pbackend clean verify -DskipITs=false`,
and if you would like to run all the ITs, simply run `./mvnw clean verify -DskipITs=false`.
Please be advised that if you're writing integration tests, name it with the pattern `IT*` so they would only run when property `skipITs` is set to false.
### Java Microbenchmark Harness (JMH)
JMH is a Java harness for building, running, and analysing nano/micro/milli/macro benchmarks written in Java and other languages targeting the JVM.
We have a module called `microbench` which performs a series of micro-benchmark tests for JMH testing.
Make new JMH tests extend the `org.apache.skywalking.oap.server.microbench.base.AbstractMicrobenchmark`
to customize runtime conditions (Measurement, Fork, Warmup, etc.).
JMH tests could run as a normal unit test. And they could run as an independent uber jar via `java -jar benchmark.jar` for all benchmarks,
or via `java -jar /benchmarks.jar exampleClassName` for a specific test.
Output test results in JSON format, you can add `-rf json` like `java -jar benchmarks.jar -rf json`, if you run through the IDE, you can configure the `-DperfReportDir=savePath` parameter to set the JMH report result save path, a report results in JSON format will be generated when the run ends.
More information about JMH can be found here: [jmh docs](https://openjdk.java.net/projects/code-tools/jmh/).
### End to End Tests (E2E)
Since version 6.3.0, we have introduced more automatic tests to perform software quality assurance. E2E is an integral part of it.
> End-to-end testing is a methodology used to test whether the flow of an application is performing as designed from start to finish.
The purpose of carrying out end-to-end tests is to identify system dependencies and to ensure that the right information is passed between various system components and systems.
The E2E test involves some/all of the OAP server, storage, coordinator, webapp, and the instrumented services, all of which are orchestrated by `docker-compose` or `KinD`.
Since version 8.9.0, we immigrate to e2e-v2 which leverage [skywalking-infra-e2e](https://github.com/apache/skywalking-infra-e2e) and [skywalking-cli](https://github.com/apache/skywalking-cli) to do the whole e2e process.
`skywalking-infra-e2e` is used to control the e2e process and `skywalking-cli` is used to interact with the OAP such as request and get response metris from OAP.
#### Writing E2E Cases
- Set up the environment
1. Set up `skywalking-infra-e2e`
1. Set up `skywalking-cli`, `yq` (generally these 2 are enough) and others tools if your cases need. Can reference the script under `skywalking/test/e2e-v2/script/prepare/setup-e2e-shell`.
- Orchestrate the components
The goal of the E2E tests is to test the SkyWalking project as a whole, including the OAP server, storage, coordinator, webapp, and even the frontend UI (not for now), on the single node mode as well as the cluster mode. Therefore, the first step is to determine what case we are going to verify, and orchestrate the
components.
To make the orchestration process easier, we're using a [docker-compose](https://docs.docker.com/compose/) that provides a simple file format (`docker-compose.yml`) for orchestrating the required containers, and offers an opportunity to define the dependencies of the components.
Follow these steps:
1. Decide what (and how many) containers will be needed. For example, for cluster testing, you'll need > 2 OAP nodes, coordinators (e.g. zookeeper), storage (e.g. ElasticSearch), and instrumented services;
1. Define the containers in `docker-compose.yml`, and carefully specify the dependencies, starting orders, and most importantly, link them together, e.g. set the correct OAP address on the agent end, and set the correct coordinator address in OAP, etc.
1. Define the e2e case [config](https://skywalking.apache.org/docs/skywalking-infra-e2e/latest/en/setup/configuration-file/) in `e2e.yaml`.
1. Write the expected data(yml) for verify.
- [Run e2e test](https://skywalking.apache.org/docs/skywalking-infra-e2e/latest/en/setup/run-e2e-tests/)
All e2e cases should under `skywalking/test/e2e-v2/cases`. You could execute e2e run command in `skywalking/` e.g.
```
e2e run -c test/e2e-v2/cases/alarm/h2/e2e.yaml
```
- Troubleshooting
We expose all logs from all containers to the stdout in the non-CI (local) mode, but save and upload them to the GitHub server. You can download them (only when the tests have failed) at "Artifacts/Download artifacts/logs" (see top right) for debugging.
**NOTE:** Please verify the newly-added E2E test case locally first. However, if you find that it has passed locally but failed in the PR check status, make sure that all the updated/newly-added files (especially those i
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
SkyWalking应用性能监控系统 v9.1.0.zip (2000个子文件)
Dockerfile.go 1KB
SampleFamily.java 30KB
ScopeTest.java 27KB
RPCAnalysisListenerTest.java 26KB
OALRuntime.java 24KB
ArithmeticTest.java 24KB
LinkedArrayBenchmark.java 22KB
CoreModuleProvider.java 22KB
RunningRuleTest.java 22KB
RPCAnalysisListener.java 21KB
RunningRule.java 20KB
MetadataQueryEsDAO.java 18KB
ScriptParserTest.java 17KB
H2MetadataQueryDAO.java 17KB
MetadataRegistry.java 17KB
BanyanDBMetadataQueryDAO.java 17KB
IncreaseTest.java 17KB
MetricsPersistentWorker.java 16KB
TopologyQueryEsDAO.java 16KB
EBPFProfilingAnalyzerBenchmark.java 16KB
TraceSamplingPolicyWatcherTest.java 16KB
NotifyHandlerTest.java 15KB
AvgHistogramPercentileFunction.java 15KB
TelemetryDataDispatcher.java 15KB
DefaultScopeDefine.java 15KB
Analyzer.java 15KB
MeterSystem.java 14KB
StorageModuleElasticsearchProvider.java 14KB
H2ZipkinQueryDAO.java 14KB
H2TopologyQueryDAO.java 14KB
StorageEsInstaller.java 14KB
ITApolloConfigurationTest.java 13KB
ZipkinQueryEsDAO.java 13KB
ElasticSearchClient.java 13KB
StorageModels.java 13KB
MetricsQueryEsDAO.java 12KB
K8SServiceRegistry.java 12KB
K8sTagTest.java 12KB
ZabbixBaseTest.java 12KB
ZipkinQueryHandler.java 12KB
ITClusterModuleConsulProviderFunctionalTest.java 12KB
MockEsInstallTest.java 12KB
BanyanDBTopologyQueryDAO.java 12KB
EBPFProcessServiceHandler.java 12KB
RulesReader.java 12KB
JVMSourceDispatcher.java 12KB
ZabbixMetrics.java 12KB
EndpointNameGroupingRule4OpenapiWatcherTest.java 12KB
H2SQLExecutor.java 12KB
AnalyzerTest.java 12KB
RemoteClientManager.java 12KB
PercentileFunction.java 12KB
H2StorageProvider.java 12KB
ITElasticSearchTest.java 12KB
H2TraceQueryDAO.java 11KB
ITClusterModuleNacosProviderFunctionalTest.java 11KB
ConfigWatcherRegister.java 11KB
EBPFProfilingServiceHandler.java 11KB
LogEntry2MetricsAdapter.java 11KB
NotifyHandler.java 11KB
PostgreSQLStorageProvider.java 11KB
ITClusterModuleEtcdProviderFunctionalTest.java 11KB
ITClusterModuleZookeeperProviderFunctionalTest.java 11KB
ZipkinSpanRecord.java 11KB
ProfileTaskQueryService.java 11KB
OndemandLogQuery.java 11KB
IDManager.java 11KB
ApplicationConfigLoader.java 11KB
MetricsStreamProcessor.java 11KB
BanyanDBProfileThreadSnapshotQueryDAO.java 11KB
TiDBStorageProvider.java 11KB
GRPCExporter.java 11KB
TopologyQueryService.java 11KB
EBPFProfilingQueryService.java 11KB
BanyanDBStorageProvider.java 10KB
AggregationTest.java 10KB
TraceQueryService.java 10KB
MockCoreModuleProvider.java 10KB
ProfileThreadSnapshotQueryEsDAO.java 10KB
BanyanDBConverter.java 10KB
MySQLStorageProvider.java 10KB
RPCTrafficSourceBuilder.java 10KB
H2ProfileThreadSnapshotQueryDAO.java 10KB
GRPCRemoteClient.java 10KB
BanyanDBMetricsQueryDAO.java 10KB
RemoteClientManagerTestCase.java 10KB
MetricsQuery.java 10KB
AlarmRulesWatcherTest.java 10KB
SegmentAnalysisListener.java 10KB
H2LogQueryDAO.java 10KB
H2MetricsQueryDAO.java 10KB
OCMetricHandler.java 10KB
FieldsHelper.java 10KB
ITElasticSearch.java 10KB
MultipleFilesChangeMonitor.java 9KB
IndexStructuresTest.java 9KB
DSLTest.java 9KB
PropertyPlaceholderHelper.java 9KB
ProcessTraffic.java 9KB
ProfileStackNode.java 9KB
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
资源评论
小小姑娘很大
- 粉丝: 4079
- 资源: 2321
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- unity控制对象移动.rar
- TortoiseSVN-1.14.3.29387-x64-svn-1.14.2
- jdk-8u411-macosx-aarch64.dmg
- docker安装.rar
- 美赛数学建模算法-使用Matlab实现常微分方程OridinaryDifferentialEquation-国赛-题解.zip
- FileUploadTestController.java
- 基于MATLAB的数字水印系统源码+GUI操作界面+全部数据资料+使用文档(高分课程设计).zip
- 美赛数学建模算法-使用Matlab实现非线性规划NonLinearProgramming-国赛-题解.zip
- linux安装java8环境资源包
- pcb问题和3D猴制作外壳.7z
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功