1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        輕量級(jí)日志平臺(tái) Loki 2.3 發(fā)布: 15 倍最近數(shù)據(jù)查詢速度提升

        共 4588字,需瀏覽 10分鐘

         ·

        2021-08-11 11:46

        一、前言

        Loki v2.3.0 中添加了出色的新功能,進(jìn)行了 bug 修復(fù)。除此之外,性能也得到了提升。雖然我們一直很低調(diào),但我們是真的很忙!

        二、自定義保留規(guī)則

        Loki 中的保留對(duì)于集群來說一直是全局的,并推遲到底層對(duì)象存儲(chǔ)。

        Loki 現(xiàn)在可以通過 Compactor 組件處理保留。你可以配置每個(gè)租戶和每個(gè)流的保留時(shí)間。這些不同的保留配置允許你以更精細(xì)的方式控制存儲(chǔ)成本并滿足安全性和合規(guī)性要求。使用 Loki 現(xiàn)有的配置覆蓋機(jī)制完成配置:

        自定義保留規(guī)則配置

        閱讀 Loki 存儲(chǔ)保留文檔[1]了解更多信息。

        三、日志刪除

        Loki 現(xiàn)在支持在指定的時(shí)間范圍刪除選定日志流條目。

        與自定義保留功能一樣,通過 Compactor 組件支持刪除。Compactor 公開用于刪除任務(wù)的 API 端點(diǎn)。存在用于請(qǐng)求刪除、列出現(xiàn)有刪除請(qǐng)求及其狀態(tài)以及取消掛起的刪除請(qǐng)求的端點(diǎn)。

        此功能的初始實(shí)現(xiàn)支持刪除截至當(dāng)前時(shí)間 - 24 小時(shí)的數(shù)據(jù)(你不能刪除過去 24 小時(shí)內(nèi)的數(shù)據(jù))。此實(shí)現(xiàn)的主要要求是確保 Loki 可以始終遵守刪除個(gè)人信息的請(qǐng)求??梢詣h除截至當(dāng)前時(shí)間的數(shù)據(jù),但更復(fù)雜。我們將來可能會(huì)迭代此功能以添加此類功能。

        此功能是實(shí)驗(yàn)性的,僅支持BoltDB 托管索引存儲(chǔ)[2]。你可以在日志條目刪除文檔中[3]了解有關(guān)此功能的更多信息。

        四、錄制規(guī)則

        Loki 現(xiàn)在支持 Prometheus 風(fēng)格的錄制規(guī)則。錄制規(guī)則使你能夠定期對(duì)日志進(jìn)行指標(biāo)查詢,將結(jié)果指標(biāo)發(fā)送到 Prometheus[4] 和 Prometheus 兼容的系統(tǒng)例如 Cortex 和 Thanos。

        錄制規(guī)則的一個(gè)引人注目的用例是用于:無法通過檢測(cè)來發(fā)送 Prometheus metrics 指標(biāo)的軟件。僅使用日志,你就可以創(chuàng)建 metrics 指標(biāo)!

        我們一直在嘗試從 Loki 的 metrics.go 日志行創(chuàng)建每個(gè)租戶 (org_id) 指標(biāo),該行輸出大量單獨(dú)的查詢統(tǒng)計(jì)信息。

        這也可以通過 Prometheus 和直方圖來完成,但這種方法的一個(gè)優(yōu)點(diǎn)是我們不需要生成具有租戶標(biāo)簽維度的直方圖,因此它減少了 Prometheus 中存儲(chǔ)的系列數(shù)量。每個(gè)租戶只生成一個(gè)系列,而不是每個(gè)租戶生成一個(gè)系列乘以直方圖中的桶數(shù)。Prometheus 中的記錄規(guī)則也可以實(shí)現(xiàn)相同的減少到每個(gè)租戶一個(gè)系列的效果,但在某些情況下,這種方法可能更適合你。

        此功能是實(shí)驗(yàn)性的。有關(guān)更多詳細(xì)信息,請(qǐng)參閱錄制規(guī)則文檔[5]。

        五、模式解析器

        使用新的模式解析器,編寫 LogQL 查詢以提取非結(jié)構(gòu)化日志的標(biāo)簽變得更快、更容易。使用模式解析器,你可以避免編寫繁瑣的正則表達(dá)式,尤其是對(duì)于由文字和空格分隔的標(biāo)記形成的常見日志格式。

        考慮這個(gè) NGINX 日志行:

        0.191.12.2 - - [10/Jun/2021:09:14:29 +0000"GET /api/plugins/versioncheck HTTP/1.1" 200 2 "-" "Go-http-client/2.0" "13.76.247.102, 34.120.177.193" "TLSv1.2" "US" ""

        可以使用模式解析器表達(dá)式解析此日志行:

        <ip> - - <_"<method> <uri> <_>" <status> <size> <_"<agent>" <_>

        它提取這些字段:

        "ip"     => "0.191.12.2"
        "method" => "GET"
        "uri"    => "/api/plugins/versioncheck"
        "status" => "200"
        "size"   => "2"
        "agent"  => "Go-http-client/2.0"

        要了解有關(guān)語法的更多信息,請(qǐng)參閱 LogQL 文檔[6]。

        六、分片攝取器

        Loki 中的分片是查詢前端用于拆分查詢以進(jìn)行并行計(jì)算的技術(shù)。在 v2.3.0 之前,未對(duì)最近的數(shù)據(jù)應(yīng)用分片。使用分片攝取,所有時(shí)間范圍都是并行化的。

        **分片提高了性能:我們的環(huán)境從 ~1GB/s 的搜索速度躍升至 ~15GB/s。**它應(yīng)該提高對(duì)大量流或具有大量數(shù)據(jù)的流的近期數(shù)據(jù)查詢的搜索性能。

        舉個(gè)例子,看看從我們的 NGINX 入口控制器查詢最后一小時(shí)的數(shù)據(jù)時(shí)的差異,它每小時(shí)記錄大約 90GB:在攝取分片之前:

        ? logcli query '{container="ingress-nginx"} |= "trytofindme!!!"' --since=1h --stats 2>&1 | grep Summary
        Summary.BytesProcessedPerSecond  784 MB
        Summary.LinesProcessedPerSecond  1263304
        Summary.TotalBytesProcessed      88 GB
        Summary.TotalLinesProcessed      141420028
        Summary.ExecTime                 1m51.944531908s

        攝取分片后:

        ? logcli query '{container="ingress-nginx"} |= "trytofindme!!!"' --since=1h --stats 2>&1 | grep Summary
        Summary.BytesProcessedPerSecond  15 GB
        Summary.LinesProcessedPerSecond  24171034
        Summary.TotalBytesProcessed      88 GB
        Summary.TotalLinesProcessed      142086646
        Summary.ExecTime                 5.878385063s

        Ingester 分片默認(rèn)處于啟用狀態(tài),但僅當(dāng)你運(yùn)行一個(gè)查詢前端組件負(fù)責(zé)創(chuàng)建發(fā)送到 ingesters 的拆分和分片時(shí)才會(huì)生效。

        七、LogQL IP 地址匹配

        對(duì)于想要對(duì)包含 IP 地址的日志進(jìn)行更復(fù)雜過濾的任何人,LogQL 已經(jīng)學(xué)習(xí)了許多新技巧來幫助你。

        語法如下:ip("<pattern>"). <pattern> 可以是:

        • 單個(gè) IP 地址。例子:ip("192.0.2.0"), ip("::1")
        • IP 地址內(nèi)的一個(gè)范圍。示例:ip("192.168.0.1-192.189.10.12"), ip("2001:db8::1-2001:db8::8")
        • CIDR 規(guī)范。示例:ip("192.51.100.0/24")ip("2001:db8::/32")

        這允許你執(zhí)行以下操作:返回匹配特定 IP 的日志行

        {container="nginx"} |= ip("192.168.4.5")

        返回不包括 IP 范圍的日志行

        {container="nginx"} != ip("192.168.4.1-192.168.4.10")

        返回匹配特定子網(wǎng)的日志行

        {container="nginx"} |= ip("192.168.4.0/24")

        LogQL 文檔中[7]了解有關(guān)語法的更多信息[8]。

        八、擴(kuò)展閱讀

        Spring boot 微服務(wù)組件 mica 中的 mica-logging 組件支持 json 日志收集到 loki,也支持日志直接批量發(fā)送到 loki,歡迎試用。

        參考資料

        [1]

        Loki 存儲(chǔ)保留文檔: https://grafana.com/docs/loki/latest/operations/storage/retention/#retention-configuration

        [2]

        BoltDB 托管索引存儲(chǔ): https://grafana.com/docs/loki/latest/operations/storage/boltdb-shipper/

        [3]

        日志條目刪除文檔中: https://grafana.com/docs/loki/latest/operations/storage/logs-deletion/

        [4]

        Prometheus: http://grafana.com/oss/prometheus/

        [5]

        錄制規(guī)則文檔: https://grafana.com/docs/loki/latest/rules/#recording-rules

        [6]

        LogQL 文檔: https://grafana.com/docs/loki/latest/logql/#pattern

        [7]

        LogQL 文檔中: https://grafana.com/docs/loki/latest/logql/ip

        [8]

        更多信息: https://grafana.com/docs/loki/latest/logql/ip


        瀏覽 338
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            三上悠亚禁欲snis986在线 | 精品久久一区二区三区三线 | 五月天丁香视频 | 女上男下吃奶100动态图 | 99久久999久久久精玫瑰 成人午夜免费毛片 | 欧美性插入 | 军人粗野h-军人受军人h 国产一级片免费 | 大香蕉在线视频影视观看 | 涩涩爱在线视频 | 日本午夜大片 |