<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>litellm on </title>
    <link>/tags/litellm/</link>
    <description>Recent content in litellm on </description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <lastBuildDate>Sat, 03 Oct 2026 22:40:00 +0800</lastBuildDate><atom:link href="/tags/litellm/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>在 Cloudflare Tunnel 后面按 key 查 LiteLLM 的用量和来源 IP</title>
      <link>/posts/litellm-key-usage-client-ip-cloudflare/</link>
      <pubDate>Sat, 03 Oct 2026 22:40:00 +0800</pubDate>
      
      <guid>/posts/litellm-key-usage-client-ip-cloudflare/</guid>
      <description>背景 homelab 里跑着一个 LiteLLM 网关，公网域名 llm.meirong.dev，后面是 DGX Spark 和 Mac 上自托管的模型。准备给几位朋友各发一把虚拟 key（virtual key），发之前想确认：每把 key 什么时候被调用、用了多少 token、请求从哪个 IP 来，事后都能查到。
这次有三条限制：LiteLLM 用官方镜像，不自己构建；不存对话内容；Cloudflare 和 Tunnel 的配置不动。
spend log 里已经有的东西 LiteLLM 接上 Postgres 之后，每次调用（包括失败的）都往 LiteLLM_SpendLogs 表写一行。跟这次有关的列：
列 内容 api_key key 的 sha256，不是原文 metadata-&amp;gt;&amp;gt;&#39;user_api_key_alias&#39; 建 key 时给的 key_alias &amp;quot;startTime&amp;quot;、model_group、status 调用时间、模型别名、success 或 failure prompt_tokens、completion_tokens、total_tokens token 数 metadata-&amp;gt;&amp;gt;&#39;user_agent&#39; 客户端 User-Agent requester_ip_address 来源 IP 用量看 token 那几列。spend 列按 LiteLLM 内置的价目表折算成钱，自托管模型不在表里，这张表里自托管模型的每一行都是 0。对话内容默认不落库：store_prompts_in_spend_logs 没开时 messages 和 response 两列是空的，全表查下来没有一行例外。
用量这一半是现成的，要补的是 IP。</description>
    </item>
    
  </channel>
</rss>
