Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clarify the Observe service mesh through ALS steps in README #5394

Closed
3 tasks
XuejiaoZhang opened this issue Aug 26, 2020 · 26 comments · Fixed by #5400
Closed
3 tasks

Clarify the Observe service mesh through ALS steps in README #5394

XuejiaoZhang opened this issue Aug 26, 2020 · 26 comments · Fixed by #5400
Labels
question End user question and discussion.
Milestone

Comments

@XuejiaoZhang
Copy link

XuejiaoZhang commented Aug 26, 2020

Please answer these questions before submitting your issue.

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

Requirement or improvement

  • Please describe your requirements or improvement suggestions.
    Clarify the Observe service mesh through ALS steps in README

The current description is confusing, would you please clarify the steps.
It mentionns

2. Open SkyWalking envoy receiver.

3. Active ALS k8s-mesh analysis

envoy-metric:
  default:
    alsHTTPAnalysis: "k8s-mesh"

a) please clarify how to open envoy receiver, I saw envoy-metric section is already in application.yaml
b) please clarify how to Active ALS k8s-mesh analysis, where should the following be put?

envoy-metric:
  default:
    alsHTTPAnalysis: "k8s-mesh"

c) from skywalking helm, I saw configuration named oap.envoy.als.enabled, is this required to set to true in values.yaml

Thanks in advance. This will definitely help a lot to integrate Skywalking with Istio.

@wu-sheng
Copy link
Member

You are mixing two things together. For application.yml, this is the standard and official way when you deploy SkyWalking from the tarball.
And helm config is providing a quick way. Basically, they are the same.
If you read the documents about how to understand the application.yml, https://github.com/apache/skywalking/blob/v8.1.0/docs/en/setup/backend/backend-setup.md#applicationyml, this gives you the explanation.

@wu-sheng wu-sheng added this to the 8.2.0 milestone Aug 26, 2020
@wu-sheng wu-sheng added the question End user question and discussion. label Aug 26, 2020
@wu-sheng
Copy link
Member

Helm is just a quick way, it just covers 70%~ features which you could do through the real application.yml. That is also the same we(Apache) only call the source release is the official release. The binary and docker image are never the release.

@XuejiaoZhang
Copy link
Author

Thanks for answering. I totally understand the Helm config just exposes part of parameters of application.yaml.
Currently I am trying to find a way to deploy skywalking above k8s to integrate with Istio, I believe this would not be an unusual use case. Do you mean that the following steps of Observe service mesh through ALS need to be done through application.yaml not via the helm way?

2. Open SkyWalking envoy receiver.
3. Active ALS k8s-mesh analysis

@wu-sheng
Copy link
Member

I mean, helm should have done these two steps.

@XuejiaoZhang
Copy link
Author

Probably it's not the case, or I may miss something.
when I run docker container locally with image apache/skywalking-oap-server:8.1.0-es7 which is used in the helm chart, I would see the settings of 2. Open SkyWalking envoy receiver. as following in the config/application.yaml

envoy-metric:
  selector: ${SW_ENVOY_METRIC:default}
  default:
    acceptMetricsService: ${SW_ENVOY_METRIC_SERVICE:true}
    alsHTTPAnalysis: ${SW_ENVOY_METRIC_ALS_HTTP_ANALYSIS:""}

But didn't see the settings of Active ALS k8s-mesh analysis

envoy-metric:
  default:
    alsHTTPAnalysis: "k8s-mesh"

Do you have any clue about this? Thanks.

@wu-sheng
Copy link
Member

Didn't helm set SW_ENVOY_METRIC_ALS_HTTP_ANALYSIS = k8s-mesh? @innerpeacez

@wu-sheng
Copy link
Member

@XuejiaoZhang If you are using docker compose only, you need to set the system env value by yourself.

@XuejiaoZhang
Copy link
Author

@wu-sheng I run docker locally just to check whether helm meets the requirements of integration with Istio or not.
Then SW_ENVOY_METRIC_ALS_HTTP_ANALYSIS env variable needs to be set in skywalking-kubernetes/chart/skywalking/templates/oap-deployment.yaml .

@wu-sheng
Copy link
Member

wu-sheng commented Aug 26, 2020

Send your pull request if this is missed. We could talk more there.

@XuejiaoZhang
Copy link
Author

Sure, thanks a lot.

@hanahmily
Copy link
Contributor

@wu-sheng @XuejiaoZhang ALS relevant parameters are not in the core. In order to support them, helm chart has introduced https://github.com/apache/skywalking-kubernetes/blob/d383403a58fefa901b03bcdb925db402a17e8718/chart/skywalking/values.yaml#L61 to set them up.

@innerpeacez
Copy link
Member

HELM CHARTS:
oap-deployment.yaml
image

You may also need to pay attention to the templates/istio-adapter/* files

@wu-sheng
Copy link
Member

wu-sheng commented Aug 27, 2020

@innerpeacez From my understanding, SW_ENVOY_ALS_ENABLED system env has not been required anymore. Could you check the application.yml inside the image?

envoy-metric:
  selector: ${SW_ENVOY_METRIC:default}
  default:
    acceptMetricsService: ${SW_ENVOY_METRIC_SERVICE:true}
    alsHTTPAnalysis: ${SW_ENVOY_METRIC_ALS_HTTP_ANALYSIS:""}

This has been included, right?

@innerpeacez
Copy link
Member

image
Checked that this configuration exists @wu-sheng

@wu-sheng
Copy link
Member

Then, I think SW_ENVOY_ALS_ENABLED should be removed. Because the docker entry script doesn't use this anymore.

It used to be like this, https://github.com/apache/skywalking/blob/v6.6.0/docker/oap/docker-entrypoint.sh#L380-L382, but with the 8.x enhancement, it is simply like this, https://github.com/apache/skywalking/blob/v8.1.0/docker/oap/docker-entrypoint.sh

@innerpeacez
Copy link
Member

Ok i will remove it. @wu-sheng

@XuejiaoZhang
Copy link
Author

Could anyone update either skywalking or skywalking-kubernetes document to include the steps of integrate Skywalking with Istio through ALS via the helm install way?
This would definitely help lots of people who are interested to use Skywalking and Istio together. Thanks.

@wu-sheng
Copy link
Member

Corrently, only set SW_ENVOY_METRIC_ALS_HTTP_ANALYSIS = k8s-mesh.

@XuejiaoZhang
Copy link
Author

XuejiaoZhang commented Aug 28, 2020

No luck with the approach we discussed, would anyone please demo/validate it?

My testing in the following is based on Istio 1.7 and latest skywalking-kubenetes.

  1. EnvoyAccessLog is enabled.

image

Also, access logs could be seen in the testing app called client here, access logs are also output to stout, we could see the following running `kubectl logs ...`
  1. helm install skywalking with env variable set SW_ENVOY_METRIC_ALS_HTTP_ANALYSIS = k8s-mesh.
    Run kubectl exec to login skywalking-oap pod

image

Issue: nothing showed on skywalking UI
image

Here are logs of skywalking-oap
image

Any clue? Thanks.

@wu-sheng
Copy link
Member

This error shows, you can't read the pod inform from the API server. cc @hanahmily

@hanahmily
Copy link
Contributor

@XuejiaoZhang
Copy link
Author

@hanahmily Thanks. I followed the instructions. The "APM" Dashboard of SkyWalking was showed correctly, but nothing on the Tracing page, while the tracing data could be seen on.Jaeger. With the current method, nothing is needed to be done on the application code side, right?

@wu-sheng
Copy link
Member

I think that is another thing. Tracing must have something related to the codes, even Javaagent(auto-instrumentation) is doing the thing in the runtime only.

ALS solution is not for tracing, tracing is for the language agent case. You could install agent/SDK in your application, and close the analysis option in the OAP. Then you have the trace on the page.

@XuejiaoZhang
Copy link
Author

XuejiaoZhang commented Aug 31, 2020

Oh, I was expecting Observe service mesh including tracing info with agent auto installed and configured. Ok, got it.
From GO2Sky, we configure GO2Sky to export to OAP server, which is listening on oap-skywalking port 11800, does that mean, the agent method is not Envoy based tracing, instead it instruments and exports tracing info to OAP server all by the application itself? With the ENVOY-BASED tracing, Envoy will generates request IDs and trace headers and sends the generated trace spans to the tracing backends.

@wu-sheng
Copy link
Member

Oh, I was expecting Observe service mesh including tracing info with agent auto installed and configured. Ok, got it.

Technically impossible, sorry :)

we configure GO2Sky to export to OAP server, which is listening on oap-skywalking port 11800, does that mean, the agent method is not Envoy based tracing, instead it instruments and exports tracing info to OAP server all by the application itself? With the ENVOY-BASED tracing, Envoy will generates request IDs and trace headers and sends the generated trace spans to the tracing backends.

Envoy tracing is tracing the things inside the envoy. It doesn't replace the code instrumentation.

Then envoy tracing progress is lead by Envoy core maintainers, envoyproxy/envoy#12486. You could show you interests there, which should accelerate the progress

@XuejiaoZhang
Copy link
Author

Yup, thanks, will followup there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question End user question and discussion.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants