Please answer these questions before submitting your issue.

- Why do you submit this issue?
- [ ] Question or discussion
- [ ] Bug
- [ ] Requirement
- [ ] Feature or performance improvement

___
### Question
- What do you want to know?

___
### Bug
- Which version of SkyWalking, OS, and JRE?

- Which company or project?

- What happened?
If possible, provide a way to reproduce the error. e.g. demo application, component version.

___
### Requirement or improvement
- Please describe your requirements or improvement suggestions.
