Skip to content

Support configurable HTTP method in out_http (e.g. PUT) #10522

@yunsur

Description

@yunsur

Is your feature request related to a problem? Please describe.

Yes. The out_http plugin currently only supports sending data using the HTTP POST method. This causes problems when integrating with external systems or APIs that require different HTTP methods, especially PUT. A common case is Apache Doris Stream Load, which requires data to be uploaded using PUT requests.

Without support for PUT, users cannot use the official out_http plugin to directly write to Doris. This forces them to either write a custom plugin (like out_doris) or deploy an intermediate proxy that converts POST to PUT, which increases system complexity and latency.

Describe the solution you'd like

We propose adding support for configurable HTTP method selection in the out_http plugin.

This should default to POST, for backward compatibility. Accepted values can be:
• POST (default)
• PUT

[OUTPUT]
    Name http
    Match *
    Host doris.example.com
    Port 8030
    URI /api/db/table/_stream_load
    HTTP_Method PUT
    Header Content-Type application/json
    Format json

Describe alternatives you've considered

Community plugin out_doris: A third-party plugin was submitted via pull request #9514 to support writing to Apache Doris using PUT. As a user, I have used this plugin and verified it works as expected. However, the pull request has not been officially merged, and relying on unofficial or unmaintained code adds operational and maintenance risks.

Additional context

I am using Fluent Bit in a real production environment to send structured logs to Apache Doris via the Stream Load API. The API requires HTTP PUT, and the lack of method configuration in out_http forced us to use an unmerged third-party plugin.

Making the method configurable would eliminate the need for unofficial plugins or proxies, and make Fluent Bit more suitable for modern data platforms like Doris.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions