KassieZ commented on code in PR #1260:
URL: https://github.com/apache/doris-website/pull/1260#discussion_r1825896425


##########
common_docs_zh/ecosystem/fluentbit.md:
##########
@@ -0,0 +1,369 @@
+---
+{
+"title": "Fluent Bit Doris Output Plugin",
+"language": "zh-CN"
+}
+---
+
+<!-- 
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+# Fluent Bit Doris output plugin
+
+[Fluent Bit](https://fluentbit.io/) 是一个快速的日志处理器和转发器,它支持自定义输出插件将数据写入存储系统,Fluent 
Bit Doris output plugin 是输出到 Doris 的插件。
+
+Fluent Bit Doris output plugin 调用 [Doris Stream 
Load](../data-operate/import/stream-load-manual.md) HTTP 接口将数据实时写入 
Doris,提供多线程并发,失败重试,自定义 Stream Load 格式和参数,输出写入速度等能力。
+
+使用 Fluent Bit Doris output plugin 主要有三个步骤:
+1. 下载或编译包含 Doris output plugin 的 Fluent Bit 二进制程序
+2. 配置 Fluent Bit 输出地址和其他参数
+3. 启动 Fluent Bit 将数据实时写入 Doris
+
+## 安装(alpha)
+
+### 从官网下载
+
+https://github.com/joker-star-l/fluent-bit/releases/download/v3.1.9-alpha/fluent-bit
+
+### 从源码编译
+
+克隆 https://github.com/joker-star-l/fluent-bit 的 dev 分支,在 build/ 目录下执行
+
+```
+cmake -DFLB_RELEASE=ON ..
+make
+```
+
+编译产物为 build/bin/fluent-bit。
+
+## 参数配置
+
+Fluent Bit Doris output plugin 的配置如下:
+
+配置 | 说明
+--- | ---
+`host` | Stream Load HTTP host
+`port` | Stream Load HTTP port
+`user` | Doris 用户名,该用户需要有doris对应库表的导入权限
+`password` | Doris 用户的密码
+`database` | 要写入的 Doris 库名
+`table` | 要写入的 Doris 表名
+`label_prefix` | Doris Stream Load Label 前缀,最终生成的 Label 为 
*{label_prefix}\_{timestamp}\_{uuid}* ,默认值是 fluentbit, 如果设置为 false 则不会添加 Label
+ `time_key` | 数据中要添加的时间戳列的名称,默认值是 date, 如果设置为 false 则不会添加该列
+`header` | Doris Stream Load 的 header 参数,可以设置多个
+`log_request` | 日志中是否输出 Doris Stream Load 请求和响应元数据,用于排查问题,默认为 true
+`log_progress_interval` | 日志中输出速度的时间间隔,单位是秒,默认为 10,设置为 0 可以关闭这种日志
+`retry_limit` | Doris Stream Load 请求失败重试次数,默认为 1, 如果设置为 false 则不限制重试次数
+`workers` | 执行 Doris Stream Load 的 worker 数量,默认为 2
+
+## 使用示例
+
+### TEXT 日志采集示例
+
+该示例以 Doris FE 的日志为例展示 TEXT 日志采集。
+
+**1. 数据**
+
+FE 日志文件一般位于 Doris 安装目录下的 fe/log/fe.log 文件,是典型的 Java 
程序日志,包括时间戳,日志级别,线程名,代码位置,日志内容等字段。不仅有正常的日志,还有带 stacktrace 的异常日志,stacktrace 
是跨行的,日志采集存储需要把主日志和 stacktrace 组合成一条日志。
+
+```
+2024-07-08 21:18:01,432 INFO (Statistics Job Appender|61) 
[StatisticsJobAppender.runAfterCatalogReady():70] Stats table not available, 
skip
+2024-07-08 21:18:53,710 WARN (STATS_FETCH-0|208) 
[StmtExecutor.executeInternalQuery():3332] Failed to run internal SQL: 
OriginStatement{originStmt='SELECT * FROM __internal_schema.column_statistics 
WHERE part_id is NULL  ORDER BY update_time DESC LIMIT 500000', idx=0}
+org.apache.doris.common.UserException: errCode = 2, detailMessage = tablet 
10031 has no queryable replicas. err: replica 10032's backend 10008 does not 
exist or not alive
+        at 
org.apache.doris.planner.OlapScanNode.addScanRangeLocations(OlapScanNode.java:931)
 ~[doris-fe.jar:1.2-SNAPSHOT]
+        at 
org.apache.doris.planner.OlapScanNode.computeTabletInfo(OlapScanNode.java:1197) 
~[doris-fe.jar:1.2-SNAPSHOT]
+```
+
+**2. 建表**
+
+表结构包括日志的产生时间,采集时间,主机名,日志文件路径,日志类型,日志级别,线程名,代码位置,日志内容等字段。
+
+```
+CREATE TABLE `doris_log` (
+  `log_time` datetime NULL COMMENT 'log content time',
+  `collect_time` datetime NULL COMMENT 'log agent collect time',
+  `host` text NULL COMMENT 'hostname or ip',
+  `path` text NULL COMMENT 'log file path',
+  `type` text NULL COMMENT 'log type',
+  `level` text NULL COMMENT 'log level',
+  `thread` text NULL COMMENT 'log thread',
+  `position` text NULL COMMENT 'log code position',
+  `message` text NULL COMMENT 'log message',
+  INDEX idx_host (`host`) USING INVERTED COMMENT '',
+  INDEX idx_path (`path`) USING INVERTED COMMENT '',
+  INDEX idx_type (`type`) USING INVERTED COMMENT '',
+  INDEX idx_level (`level`) USING INVERTED COMMENT '',
+  INDEX idx_thread (`thread`) USING INVERTED COMMENT '',
+  INDEX idx_position (`position`) USING INVERTED COMMENT '',
+  INDEX idx_message (`message`) USING INVERTED PROPERTIES("parser" = 
"unicode", "support_phrase" = "true") COMMENT ''
+) ENGINE=OLAP
+DUPLICATE KEY(`log_time`)
+COMMENT 'OLAP'
+PARTITION BY RANGE(`log_time`) ()
+DISTRIBUTED BY RANDOM BUCKETS 10
+PROPERTIES (
+"replication_num" = "1",
+"dynamic_partition.enable" = "true",
+"dynamic_partition.time_unit" = "DAY",
+"dynamic_partition.start" = "-7",
+"dynamic_partition.end" = "1",
+"dynamic_partition.prefix" = "p",
+"dynamic_partition.buckets" = "10",
+"dynamic_partition.create_history_partition" = "true",
+"compaction_policy" = "time_series"
+);
+```
+
+**3. 配置**
+
+Fluent Bit 日志采集的配置文件如下,doris_log.conf 用于定义 ETL 的各个部分组件,parsers.conf 
用于定义不同的日志解析器。
+
+doris_log.conf:
+```
+# config for Fluent Bit service
+[SERVICE]
+    log_level info
+    # parsers file
+    parsers_file parsers.conf
+
+# use input tail
+[INPUT]
+    name tail
+    path /path/to/your/log
+    # add log file name to the record, key is 'path'
+    path_key path
+    # set multiline parser
+    multiline.parser multiline_java 
+
+# parse log
+[FILTER]
+    match *
+    name parser
+    key_name log
+    parser fe_log
+    reserve_data true
+
+# add host info
+[FILTER]
+    name sysinfo
+    match *
+    # add hostname to the record, key is 'host'
+    hostname_key host
+
+# output to doris
+[OUTPUT]
+    name doris
+    match *
+    host fehost
+    port feport
+    user your_username
+    password your_password
+    database your_db
+    table your_table
+    # add 'collect_time' to the record
+    time_key collect_time
+    # 'collect_time' is timestamp, change it to datatime
+    header columns collect_time=from_unixtime(collect_time)
+    log_request true
+    log_progress_interval 10
+```
+
+parsers.conf
+```

Review Comment:
   please add all the code fence for code block



##########
common_docs_zh/ecosystem/fluentbit.md:
##########
@@ -0,0 +1,369 @@
+---
+{
+"title": "Fluent Bit Doris Output Plugin",
+"language": "zh-CN"
+}
+---
+
+<!-- 
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+# Fluent Bit Doris output plugin
+
+[Fluent Bit](https://fluentbit.io/) 是一个快速的日志处理器和转发器,它支持自定义输出插件将数据写入存储系统,Fluent 
Bit Doris output plugin 是输出到 Doris 的插件。
+
+Fluent Bit Doris output plugin 调用 [Doris Stream 
Load](../data-operate/import/stream-load-manual.md) HTTP 接口将数据实时写入 
Doris,提供多线程并发,失败重试,自定义 Stream Load 格式和参数,输出写入速度等能力。
+
+使用 Fluent Bit Doris output plugin 主要有三个步骤:
+1. 下载或编译包含 Doris output plugin 的 Fluent Bit 二进制程序
+2. 配置 Fluent Bit 输出地址和其他参数
+3. 启动 Fluent Bit 将数据实时写入 Doris
+
+## 安装(alpha)
+
+### 从官网下载
+
+https://github.com/joker-star-l/fluent-bit/releases/download/v3.1.9-alpha/fluent-bit
+
+### 从源码编译
+
+克隆 https://github.com/joker-star-l/fluent-bit 的 dev 分支,在 build/ 目录下执行
+
+```
+cmake -DFLB_RELEASE=ON ..
+make
+```
+
+编译产物为 build/bin/fluent-bit。
+
+## 参数配置
+
+Fluent Bit Doris output plugin 的配置如下:
+
+配置 | 说明

Review Comment:
   it's recommended you to use Chat GPT double check the Table format



##########
common_docs_zh/ecosystem/fluentbit.md:
##########
@@ -0,0 +1,369 @@
+---
+{
+"title": "Fluent Bit Doris Output Plugin",
+"language": "zh-CN"
+}
+---
+
+<!-- 
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+# Fluent Bit Doris output plugin

Review Comment:
   Delete it since "title" = level first title 



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to