# Function tracing sample It is well known that FaaS often blocks some of the underlying implementation for developers in order to allow them to focus on their business code. This makes it difficult to troubleshoot the service system. So we tried to introduce observable capabilities to OpenFunction to improve its usability and stability. SkyWalking provides solutions for observing and monitoring distributed system, in many different scenarios. We have now introduced SkyWalking (go2sky) for OpenFunction as a distributed tracing solution for Go language functions. We will demonstrate it in this sample. ## Prerequisites The design of this sample is the same as sample [with-output-binding](https://github.com/OpenFunction/samples/blob/main/functions/knative/with-output-binding/README.md), but with some minor changes, which we will explain in the process. ![](https://i.imgur.com/wuQeqLU.png) Follow [this guide](https://github.com/OpenFunction/samples/blob/main/Prerequisites.md#openfunction) to install OpenFunction. Follow [this guide](https://github.com/apache/skywalking-kubernetes#apache-skywalking-kubernetes) to install SkyWalking. Follow [this guide](https://github.com/OpenFunction/samples/blob/main/Prerequisites.md#kafka) to install a Kafka server named `kafka-server` and a Topic named `sample-topic`. Follow [this guide](https://github.com/OpenFunction/samples/blob/main/Prerequisites.md#registry-credential) to create a registry credential. ## Deployment First we need to turn on the global tracing configuration for OpenFunction. > Modify the ConfigMap resource `openfunction-config` in the `openfunction` namespace > > Here we assume that the skywalking-opa address in your cluster is `skywalking-opa.default:11800` ```yaml data: plugins.tracing: | enabled: true provider: name: "skywalking" oapServer: "skywalking-oap:11800" tags: func: function-with-tracing layer: faas tag1: value1 tag2: value2 baggage: key: "key1" value: "value1" ``` Then we can follow [this guide](https://github.com/OpenFunction/samples/blob/main/functions/knative/with-output-binding/README.md#deployment) to deploy two functions for demonstrating the tracing effect of the entire link. Once it's all done, you can observe the flow of entire link on the SkyWalking UI. ![](https://i.imgur.com/NbcIFWT.gif)