# Using the Expression Browser

&#x20;       表达式浏览器对于运行的时候查询，开发PromQL表达式以及调试PromQL和Prometheus中的数据非常有用

&#x20;       进入下图的页面输入up后点击`Execute` 可以看到一个名为`up{instance="localhost:9090",job="prometheus"}` 的结果和值。up这个是prometheus表示scrape成功后才会添加的指标，值为1则表示成功。这个结果是prometheus去scrape自己的指标。

![](https://1416876843-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LWiFDKfDF6fnA5PreI6%2F-LWoY4rp4Zrln9vOlJwJ%2F-LWoZxiSobDL1AYUpKli%2Fimage.png?alt=media\&token=daf3e322-666f-4ac4-aa2f-0d7c023d40ce)

&#x20;       此处的job这个标签来自prometheus.yml中的定义的`job_name`。 prometheus并不知道它正在刮一个prometheus，因此它应该使用一个值prometheus的job标签。 相反，这是一种需要用户进行配置的约定。 作业标签指示应用程序的类型。\
&#x20;       接下来，您应该评估`process_resident_memory_bytes`，如图所示

![](https://1416876843-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LWiFDKfDF6fnA5PreI6%2F-LWoa6Z50KrFtfbdaeFb%2F-LWoaEeeQ1Lvlsy57FaX%2Fimage.png?alt=media\&token=c924735b-8d29-457a-b8ec-6344b6866207)

&#x20;       我的prometheus正在使用大约44 MB的内存。 您可能想知道为什么使用字节而不是兆字节或千兆字节来公开此度量标准，这可能更具可读性。 答案是，更具可读性的内容在很大程度上取决于上下文，即使不同环境中的相同二进制文件也可能具有不同数量级的值。 内部RPC可能需要几微秒，而轮询长时间运行的进程可能需要数小时甚至数天。 因此，普罗米修斯的惯例是使用基本单位，如字节和秒，让图标程序去展示例如grafana

&#x20;       了解当前的内存使用情况非常好，但最重要的是看看它是如何随着时间的推移而发生变化的。 为此，请单击Graph切换到图形视图

![](https://1416876843-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LWiFDKfDF6fnA5PreI6%2F-LWoa6Z50KrFtfbdaeFb%2F-LWoawnR01RK02XHhmIq%2Fimage.png?alt=media\&token=0bff11f6-5923-433c-8a5d-19ca7a67a4bb)

&#x20;       像`processresident_memory_bytes`这样的度量标准称为`Gauges`。 对于`Gauges`，它的当前绝对值对您来说很重要。 还有第二种核心类型的指标叫`counter`。 计数器跟踪发生的事件数量或所有事件的总大小。 让我们通过绘制`prometheus_tsdb_head samples_appended_total`来看一个计数器，这是Prometheus摄入的样本数量，如图

![](https://1416876843-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LWiFDKfDF6fnA5PreI6%2F-LWoa6Z50KrFtfbdaeFb%2F-LWobl30wFZ0kh8kolkr%2Fimage.png?alt=media\&token=c1d9f508-018d-4814-9f49-f616c40db983)

&#x20;       计数器(counter)总是在增加。 这会产生美观和正确的图形，但计数器的值本身并没有多大用处。 你真正想知道的是计数器增加的速度，这是`rate`函数的来源。`rate`函数计算计数器每秒增加的速度。 调整你的 `rate(prometheus_tsdb_head_samples_appended_total[1m])`，它将计算普罗米修斯每分钟在一分钟内平均摄取的样本数量，并产生如图的结果

![](https://1416876843-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LWiFDKfDF6fnA5PreI6%2F-LWoa6Z50KrFtfbdaeFb%2F-LWocMdHAZyIGk2bcOn0%2Fimage.png?alt=media\&token=e58a991d-e7d3-4e75-b9b8-6253d9368271)

&#x20;       你现在可以看到普罗米修斯平均每秒摄取68个左右的样本。 由于进程重新启动且样本未完全对齐，速率函数会自动处理计数器重置
