# Service

The `service` section defines global properties of the service. The available configuration keys are:

| Key                          | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Default   |
| ---------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- |
| `flush`                      | Sets the flush time in `seconds.nanoseconds`. The engine loop uses a flush timeout to determine when to flush records ingested by input plugins to output plugins.                                                                                                                                                                                                                                                                                                                | `1`       |
| `grace`                      | Sets the grace time in `seconds` as an integer value. The engine loop uses a grace timeout to define the wait time before exiting.                                                                                                                                                                                                                                                                                                                                                | `5`       |
| `daemon`                     | Boolean. Specifies whether Fluent Bit should run as a daemon (background process). Allowed values are: `yes`, `no`, `on`, and `off`. Do not enable when using a Systemd-based unit, such as the one provided in Fluent Bit packages.                                                                                                                                                                                                                                              | `off`     |
| `dns.mode`                   | Sets the primary transport layer protocol used by the asynchronous DNS resolver. Can be overridden on a per-plugin basis.                                                                                                                                                                                                                                                                                                                                                         | `UDP`     |
| `log_file`                   | Absolute path for an optional log file. By default, all logs are redirected to the standard error interface (stderr).                                                                                                                                                                                                                                                                                                                                                             | *none*    |
| `log_level`                  | Sets the logging verbosity level. Allowed values are: `off`, `error`, `warn`, `info`, `debug`, and `trace`. Values are cumulative. If `debug` is set, it will include `error`, `warn`, `info`, and `debug`. Trace mode is only available if Fluent Bit was built with the *`WITH_TRACE`* option enabled.                                                                                                                                                                          | `info`    |
| `parsers_file`               | Path for a `parsers` configuration file. Multiple `parsers_file` entries can be defined within the section. However, with the new YAML configuration schema, defining parsers using this key is now optional. Parsers can be declared directly in the `parsers` section of your YAML configuration, offering a more streamlined and integrated approach.                                                                                                                          | *none*    |
| `plugins_file`               | Path for a `plugins` configuration file. This file specifies the paths to external plugins (.so files) that Fluent Bit can load at runtime. With the new YAML schema, the `plugins_file` key is optional. External plugins can now be referenced directly within the `plugins` section, simplifying the plugin management process. [See an example](https://github.com/fluent/fluent-bit/blob/master/conf/plugins.conf).                                                          | *none*    |
| `streams_file`               | Path for the Stream Processor configuration file. This file defines the rules and operations for stream processing within Fluent Bit. The `streams_file` key is optional, as Stream Processor configurations can be defined directly in the `streams` section of the YAML schema. This flexibility allows for easier and more centralized configuration. [Learn more about Stream Processing configuration](https://docs.fluentbit.io/manual/3.2/stream-processing/introduction). | *none*    |
| `http_server`                | Enables the built-in HTTP Server.                                                                                                                                                                                                                                                                                                                                                                                                                                                 | `off`     |
| `http_listen`                | Sets the listening interface for the HTTP Server when it's enabled.                                                                                                                                                                                                                                                                                                                                                                                                               | `0.0.0.0` |
| `http_port`                  | Sets the TCP port for the HTTP Server.                                                                                                                                                                                                                                                                                                                                                                                                                                            | `2020`    |
| `hot_reload`                 | Enables hot [reloading](https://github.com/fluent/fluent-bit-docs/blob/master/administration/hot_reload.md) of configuration with SIGHUP.                                                                                                                                                                                                                                                                                                                                         | `on`      |
| `coro_stack_size`            | Sets the coroutine stack size in bytes. The value must be greater than the page size of the running system. Setting the value too small (`4096`) can cause coroutine threads to overrun the stack buffer. The default value of this parameter should not be changed.                                                                                                                                                                                                              | `24576`   |
| `scheduler.cap`              | Sets a maximum retry time in seconds. Supported in v1.8.7 and greater.                                                                                                                                                                                                                                                                                                                                                                                                            | `2000`    |
| `scheduler.base`             | Sets the base of exponential backoff. Supported in v1.8.7 and greater.                                                                                                                                                                                                                                                                                                                                                                                                            | `5`       |
| `json.convert_nan_to_null`   | If enabled, `NaN` is converted to `null` when Fluent Bit converts `msgpack` to `json`.                                                                                                                                                                                                                                                                                                                                                                                            | `false`   |
| `sp.convert_from_str_to_num` | If enabled, the Stream Processor converts strings that represent numbers to a numeric type.                                                                                                                                                                                                                                                                                                                                                                                       | `true`    |

## Configuration Example

Below is a simple configuration example that defines a `service` section with [hot reloading](https://github.com/fluent/fluent-bit-docs/blob/master/administration/hot_reload.md) enabled and a pipeline with a `random` input and `stdout` output:

```yaml
service:
  flush: 1
  log_level: info
  http_server: true
  http_listen: 0.0.0.0
  http_port: 2020
  hot_reload: on

pipeline:
  inputs:
    - name: random

  outputs:
    - name: stdout
      match: '*'
```


---

# 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/3.2/administration/configuring-fluent-bit/yaml/service-section.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.
