# SkyWalking

The **Apache SkyWalking** output plugin, allows to flush your records to a [Apache SkyWalking](https://skywalking.apache.org/) OAP. The following instructions assumes that you have a fully operational Apache SkyWalking OAP in place.

## Configuration Parameters

| parameter       | description                                              | default    |
| --------------- | -------------------------------------------------------- | ---------- |
| host            | Hostname of Apache SkyWalking OAP                        | 127.0.0.1  |
| port            | TCP port of the Apache SkyWalking OAP                    | 12800      |
| auth\_token     | Authentication token if needed for Apache SkyWalking OAP | None       |
| svc\_name       | Service name that fluent-bit belongs to                  | sw-service |
| svc\_inst\_name | Service instance name of fluent-bit                      | fluent-bit |

### TLS / SSL

Apache SkyWalking output plugin supports TTL/SSL, for more details about the properties available and general configuration, please refer to the [TLS/SSL](https://github.com/fluent/fluent-bit-docs/tree/16f30161dc4c79d407cd9c586a0c6839d0969d97/pipeline/configuration/tls_ssl.md) section.

## Getting Started

In order to start inserting records into an Apache SkyWalking service, you can run the plugin through the configuration file:

### Configuration File

In your main configuration file append the following *Input* & *Output* sections:

```
[INPUT]
    Name cpu

[OUTPUT]
    Name skywalking
    svc_name dummy-service
    svc_inst_name dummy-service-fluentbit
```

## Output Format

The format of the plugin output follows the [data collect protocol](https://github.com/apache/skywalking-data-collect-protocol/blob/743f33119dc5621ae98b596eb8b131dd443445c7/logging/Logging.proto).

For example, if we get log as follows,

```
{
   "log": "This is the original log message"
}
```

This message is packed into the following protocol format and written to the OAP via the REST API.

```
[{
  "timestamp": 123456789,
  "service": "dummy-service",
  "serviceInstance": "dummy-service-fluentbit",
  "body": {
    "json": {
      "json": "{\"log\": \"This is the original log message\"}"
    }
  } 
}]
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.fluentbit.io/manual/1.9/pipeline/outputs/skywalking.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
