标签: monitoring

Process.WorkingSet64 返回最大值 4294967295

我正在尝试使用 C# 监视另一个进程的内存。但是,Process.WorkingSet64 或 Process.PrivateMemorySize64 将输出的最大内存值为 4294967295。性能计数器也有同样的问题。

这是我的代码:

using System;
using System.Diagnostics;

namespace perfmon
{
    class Program
    {
        static void Main(string[] args)
        {
            int pid;
            if (int.TryParse(args[0], out pid))
            {
                var p = Process.GetProcessById(pid);

                var ramCounter = new PerformanceCounter("Process", "Working Set", p.ProcessName);
                Console.WriteLine($"ProcessName:{p.ProcessName}");

                var ram = ramCounter.NextValue();
                p.Refresh();

                Console.WriteLine("WorkingSet64\tPrivateMemorySize64\tRam PC");
                Console.WriteLine($"{p.WorkingSet64}\t{p.PrivateMemorySize64}\t\t{ram}");
            }

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在带有 .net 4.61 的 Windows Server 2012 R2 上运行。

输出:

C:\XXX\perfmon>perfmon.exe 15800
ProcessName:XXX.Windows.Services
WorkingSet64    PrivateMemorySize64     Ram PC
4294967295      4294967295              4.294967E+09
Run Code Online (Sandbox Code Playgroud)

进程的 Powershell 输出: …

c# memory monitoring system.diagnostics process

2
推荐指数
1
解决办法
780
查看次数

Kafka JMX 不报告 kafka.log:type=LogFlushStats,name=LogFlushRateAndTimeMs

所有有关监控 kafka 的指南都指出日志刷新率是观察问题的关键指标。

我们有一个适度的三节点 kafka 集群 (0.9.x),我们开始认真对待它。我继续设置 prometheus 来抓取指标(使用他们提供的 jmx_exporter),但是我没有看到日志刷新率指标流入。对其中一个代理上的 jmx 端口的进一步检查表明它没有浮出水面。

具体来说,我正在寻找这个指标 kafka.log:type=LogFlushStats,name=LogFlushRateAndTimeMs

我不太懂java,所以我不确定这不仅仅是可以通过额外的标志或其他东西来纠正的问题。任何帮助,将不胜感激。

monitoring apache-kafka

2
推荐指数
1
解决办法
1169
查看次数

使用 PowerShell 在计算机上查找特定的 .exe 文件

因此,在我目前正在实习的公司中,他们有大约 20 台装有公司指定软件的“技术笔记本电脑”。它们位于 C:\ 目录中。

例如:

aaa.exe 位于 C:\aaa\aaa.exe

bbb.exe 位于 C:\bbb\bbb.exe

我真正需要的是一个 .ps1 脚本来在列表中显示这些特定的可执行文件。

到目前为止我所拥有的是: Get-ChildItem C:\ -recurse | where {$_.extension -eq ".exe"}

现在,我相信它只是编辑搜索查询,因为这给了我 C:\ 驱动器上的所有 .exe 文件,我只需要aaabbb

仅供参考:我需要该脚本,以便我可以使用它来监视 zabbix 代理并查看特定软件是否在计算机上,以便我可以在 Zabbix 服务器上运行此脚本。

windows shell powershell monitoring

2
推荐指数
1
解决办法
1万
查看次数

prometheus 将一个 NaN 值结果相加为 NaN。如何避免?

我在 prometheus 中有以下指标:它按秒计算 memcached 命令:

sum (irate (memcached_commands_total{instance="memcached-instance"}[5m])) by (command)
Run Code Online (Sandbox Code Playgroud)

结果:

{command="delete"}  0
{command="flush"}   0
{command="get"} 62.733333333333334
{command="incr"}    0
{command="set"} 93.43333333333334
{command="touch"}   NaN
{command="cas"} 0
{command="decr"}    0
Run Code Online (Sandbox Code Playgroud)

我想按秒计算命令(不同命令没有单独的速率)。我尝试了以下公式:

sum (irate (memcached_commands_total{instance="memcached-instance"}[5m]))
Run Code Online (Sandbox Code Playgroud)

但结果是:

{}  NaN
Run Code Online (Sandbox Code Playgroud)

我期望大约 155,但它是 NaN。我想是 command="touch" 罪魁祸首。可以从总和中排除 NaN 吗?

monitoring prometheus

2
推荐指数
1
解决办法
8269
查看次数

正确计算发送到死信 SQS 队列的消息数

我希望 grafana 在任何给定时间报告死信队列中有多少消息。由于消息在此队列中结束的性质,因此将对在此队列中结束的消息进行评估和解析。

我已将 grafana 配置为NumberOfMessagesSentdead-letter队列中读取,但是,该值始终为0,因为;我认为最终到达这里的消息是从另一个队列(通过 SQS)发送的。

即使我可以看到消息已发送到dead-letter队列(不是以编程方式),但是由另一个在 X 次接收后配置的队列发送。

NumberOfMessagesSent 的 grafana 配置

这个问题有方法解决吗?

monitoring amazon-sqs amazon-web-services grafana

2
推荐指数
1
解决办法
1409
查看次数

Prometheus Adapter 和 Prometheus Operator 的区别

正如标题所暗示的,我找不到 Prometheus Adapter 和 Prometheus Operator 之间的任何区别,用于在网络上的 kubernetes 中进行监控。

谁能告诉我有什么区别?或者是否有特定的用例可以使用其中一个?

提前致谢。

monitoring kubernetes prometheus

2
推荐指数
1
解决办法
694
查看次数

如何在 prometheus.yml 中过滤 EC2 实例?

我正在尝试过滤prometheus.yml. 假设以下内容是 yml 文件的一部分。如何使用中的值的正则表达式返回实例与启动,让说,prod或者qa还是其他的标签?这可以不配置relabeling吗?

  ec2_sd_configs:
- region: us-east-1
  access_key: access
  secret_key: mysecret
  profile: profile
  filters:
    - name: tag:Name
      values:
        - prod.*
        - qa.*
Run Code Online (Sandbox Code Playgroud)

monitoring amazon-ec2 prometheus

2
推荐指数
1
解决办法
3908
查看次数

普罗米修斯中覆盖标签的问题

我从掌舵安装了稳定/普罗米修斯。默认情况下,job_namekubernetes-service-endpoints包含node-exporterkube-state-metrics作为组件标签。我在 prometheus.yml 中添加了以下配置以包含命名空间、pod 和节点标签。

      - source_labels: [__meta_kubernetes_namespace]
        separator: ;
        regex: (.*)
        target_label: namespace
        replacement: $1
        action: replace
      - source_labels: [__meta_kubernetes_pod_name]
        separator: ;
        regex: (.*)
        target_label: pod
        replacement: $1
        action: replace
      - source_labels: [__meta_kubernetes_pod_node_name]
        separator: ;
        regex: (.*)
        target_label: node
        replacement: $1
        action: replace
Run Code Online (Sandbox Code Playgroud)

kube_pod_info{component="kube-state-metrics"}已经有了命名空间、pod 和节点标签,因此生成了导出的标签。并且该指标node_cpu_seconds_total{component="node-exporter"}现在正确地具有标签命名空间、pod 和节点。

要正确使用这些标签,我需要在上述两个指标名称中都包含这 3 个标签。为了实现这一点,我可以覆盖exported_labels 的值。我尝试添加以下配置但无济于事。

      - source_labels: [__name__, exported_pod]
        regex: "kube_pod_info;(.+)"
        target_label: pod
      - source_labels: [__name__, exported_namespace]
        regex: "kube_pod_info;(.+)"
        target_label: namespace
      - source_labels: [__name__, exported_node]
        regex: …
Run Code Online (Sandbox Code Playgroud)

monitoring kubernetes prometheus

2
推荐指数
1
解决办法
3948
查看次数

Prometheus alertmanager 向多个松弛通道发送通知

我们有两个不同的团队在处理不同的应用程序。我想通过使用相同的警报表达式将警报通知发送到不同的 slack 通道。我找到了一些示例,但不明白receiver: 'default'尝试添加新路由时使用的主要原因是什么?this 的作用是什么,如果它会影响 if 呢?改变这个?

同时,如果您能帮助我如何将通知发送到多个 slack 频道,我将不胜感激。我尝试过新的。

当前的alertmanager.yml

receivers:
  - name: 'team-1'
    slack_configs:
    - api_url: 'https://hooks.slack.com/services/1'
      channel: '#hub-alerts'
route:
  group_wait: 10s
  group_interval: 5m
  receiver: 'team-1'
  repeat_interval: 1h
  group_by: [datacenter]
Run Code Online (Sandbox Code Playgroud)

新的alertmanager.yml

alertmanager.yml:
    receivers:
      - name: 'team-1'
        slack_configs:
        - api_url: 'https://hooks.slack.com/services/1'
          channel: '#channel-1'
          send_resolved: true
      
      - name: 'team-2'
        slack_configs:
        - api_url: 'https://hooks.slack.com/services/2'
          channel: '#channel-2'
          send_resolved: true

route:
  group_wait: 10s
  group_interval: 5m
  repeat_interval: 1h
  group_by: [datacenter]
  receiver: 'default'
  routes:
  - receiver: 'team-1'
  - receiver: 'team-2'
Run Code Online (Sandbox Code Playgroud)

monitoring prometheus prometheus-alertmanager

2
推荐指数
1
解决办法
6622
查看次数

为 Prometheus 目标配置 basic_auth

static_configs我的 prometheus.yml 配置文件中的目标之一使用基本身份验证进行保护。因此,在 Prometheus 目标页面中始终针对该目标显示描述为“拒绝连接”的错误。

我研究了如何设置 prometheus 以在尝试抓取该特定目标时提供安全凭据,但找不到任何解决方案。我发现的是如何scrape_config在文档中的部分进行设置。这对我不起作用,因为我还有其他不受basic_auth. 请帮我解决这个挑战。

.yml关于我的挑战,这是我的配置的一部分。

scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'

    # Override the global default and scrape targets from this job every 5 seconds.
    scrape_interval: 5s
    scrape_timeout: 5s

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
      
      - targets: ['localhost:5000']
        labels: 
          service: 'Auth'
      - targets: ['localhost:5090']
        labels:
          service: 'Approval'
      - targets: …
Run Code Online (Sandbox Code Playgroud)

monitoring prometheus

2
推荐指数
2
解决办法
6230
查看次数