> For the complete documentation index, see [llms.txt](https://zhangguanzhang.gitbook.io/prometheus-up-running/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://zhangguanzhang.gitbook.io/prometheus-up-running/part-i-introduction/what-is-prometheus/prometheus-architecture/client-libraries.md).

# Client Libraries

&#x20;       度量标准(Metrics)通常不会从应用程序中神奇地出现; 必须有人添加产生它们的代码。 这是客户端库的用武之地。通常只有两到三行代码，您可以定义一个度量标准，并在您控制的代码中内嵌所需的检测。 这被称为direct instrumentation。\
&#x20;       客户端库可用于所有主要语言和runtimes。 Prometheus项目提供Go，Python，Java / JVM和Ruby中的官方客户端库。 还有各种第三方客户端库，例如C#/.Net，Node.js，Haskell，Erlang和Rust。

&#x20;                                     **官方和第三方**\
&#x20;         不要被非官方或第三方的集成所拖延。有许多您希望与之集成的应用程序和系统是Prometheus项目团队无法拥有创建和开发的时间和专业知识。因此，在这个生态中的绝大多数集成都是第三方。 为了使事情保持合理一致并按预期工作，可以阅读有关如何编写集成的指南

\
&#x20;        客户端库负责处理所有细节，例如线程安全，簿记以及生成Prometheus文本展示格式以响应HTTP请求。 由于基于度量的监视不跟踪单个事件，因此客户端库内存使用量不会增加您拥有的事件。 相反，内存与您拥有的指标数量有关\
&#x20;       如果应用程序的某个库依赖项具有Prometheus检测，则会自动获取它。 因此，通过检测诸如RPC客户端之类的密钥库，您可以在所有应用程序中获取它的检测。\
&#x20;       某些度量标准通常由客户端库提供，例如CPU使用率和垃圾回收统计信息，具体取决于库和运行时环境。\
&#x20;       客户端库不限于以Prometheus文本格式输出指标。 Prometheus是一个开放的生态系统，用于提供生成文本格式的相同API可用于生成其他格式的度量标准或提供给其他仪器系统。 同样，如果您还没有完全将所有内容转换为Prometheus的客户端，则可以从其他仪器系统中获取指标并将其连接到Prometheus客户端库中。
