# Config: Inject Section

## Inject section overview

The **inject** section can be under `<match>` or `<filter>` section. It is enabled for the plugins that support injecting values to the event record.

```
<match>
  @type file
  # ...
  <inject>
    # ...
  </inject>
</match>
```

### Example

Configuration:

```
<inject>
  time_key fluentd_time
  time_type string
  time_format %Y-%m-%dT%H:%M:%S.%NZ
  tag_key fluentd_tag
</inject>
```

Event Record:

```
tag: test
time: 1547575563.952259
record: {"message":"hello"}
```

Injected Record:

```
{"message":"hello","fluentd_tag":"test","fluentd_time":"2019-01-15T18:06:03.952259000Z"}
```

## Inject Section Parameter

### Inject Parameters

* **`hostname_key`** (string) (optional): the field name to inject `hostname`
  * Default: `nil`
* **`hostname`** (string) (optional): hostname value
  * Default: `Socket.gethostname`
* **`worker_id_key`** (string) (optional): the field name to inject

  `worker_id`

  * Default: `nil`
* **`tag_key`** (string) (optional): the field name to inject `tag`
  * Default: `nil`
* **`time_key`** (string) (optional): the field name to inject `time`
  * Default: `nil`

### Time Parameters

* **`time_type`** (enum) (optional): parses/formats value according to this

  type

  * Default: `float`
  * Available values:
    * `float`: seconds from Epoch + microseconds (e.g.

      1510544836.154709)
    * `unixtime`: seconds from Epoch (e.g. 1510544836)
    * `unixtime_millis` (since v1.11.4): milliseconds from Epoch

      (e.g. 1510544836154)
    * `unixtime_micros` (since v1.20.0): microseconds from Epoch

      (e.g. 1510544836154709)
    * `unixtime_nanos` (since v1.20.0): nanoseconds from Epoch

      (e.g. 1510544836154709804)
    * `string`: use format specified by `time_format`, local time or time

      zone
* **`time_format`** (string) (optional): processes value according to the

  specified format. This is available only when `time_type` is `string`.

  * Default: `nil`
  * Available time format:
    * For more details about formatting, see

      [`Time#strftime`](https://docs.ruby-lang.org/en/2.4.0/Time.html#method-i-strftime).
    * For more details about parsing, see

      [`Time.strptime`](https://docs.ruby-lang.org/en/2.4.0/Time.html#method-c-strptime).
    * `%iso8601` (only for parsing)
    * Use `%N` to parse/format with sub-second precision, because

      [`strptime`](https://github.com/nurse/strptime) does not support

      `%3N`, `%6N`, `%9N`, and `%L`.
* **`localtime`** (bool) (optional): if `true`, uses local time. Otherwise,

  UTC is used. This is exclusive with `utc`.

  * Default: `true`
* **`utc`** (bool) (optional): if `true`, uses UTC. Otherwise, local time is

  used. This is exclusive with `localtime`.

  * Default: `false`
* **`timezone`** (string) (optional): uses the specified timezone. One can

  parse/format the time value in the specified timezone format.

  * Default: `nil`
  * Available time zone format:
    1. `[+-]HH:MM` (e.g. "+09:00") **(recommended)**
    2. `[+-]HHMM` (e.g. "+0900")
    3. `[+-]HH` (e.g. "+09")
    4. Region/Zone (e.g. `Asia/Tokyo`)
    5. Region/Zone/Zone (e.g. `America/Argentina/Buenos_Aires`)

If this article is incorrect or outdated, or omits critical information, please [let us know](https://github.com/fluent/fluentd-docs-gitbook/issues?state=open). [Fluentd](http://www.fluentd.org/) is an open-source project under [Cloud Native Computing Foundation (CNCF)](https://cncf.io/). All components are available under the Apache 2 License.


---

# 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.fluentd.org/configuration/inject-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.
