MightySlaytanic / pve-monitoring

Proxmox VE temperature and disk-health stats upload to influxdb2
MIT License
63 stars 8 forks source link

Possible to get temp for amd based boards? #12

Open ozgurerdogan opened 12 months ago

ozgurerdogan commented 12 months ago

This tool is great. Thank you. I am getting following:

./pve_temp_stats_to_influxdb2.sh

Traceback (most recent call last): File "/pve_temp_stats_to_influxdb2.py", line 40, in PCH_INFO = getenv("PCH_INFO").split(':') AttributeError: 'NoneType' object has no attribute 'split'

MightySlaytanic commented 12 months ago

Hi, I don't have an AMD processor to make tests.. btw the error seems due to the fact that you did not set the PCH_INFO variable in the bash script, can you post the .sh script? Can you post also the output of sensors -j?

ozgurerdogan commented 12 months ago

Ok after I updated pve_temp_stats_to_influxdb2.sh I am now getting:

root@s11:/# ./pve_temp_stats_to_influxdb2.sh Traceback (most recent call last): File "/pve_temp_stats_to_influxdb2.py", line 65, in stats["cpu-package"] = int(data[CORETEMP_NAME]["Package id 0"]["temp1_input" ]) KeyError: 'coretemp-isa-0000'

sensors -j :

{ "k10temp-pci-00d3":{ "Adapter": "PCI adapter", "Tctl":{ "temp1_input": 27.875 } }, "k10temp-pci-00c3":{ "Adapter": "PCI adapter", "Tctl":{ "temp1_input": 28.250 }, "Tccd1":{ "temp3_input": 27.750 }, "Tccd2":{ "temp4_input": 27.500 }, "Tccd3":{ "temp5_input": 27.750 } }, "nvme-pci-6200":{ "Adapter": "PCI adapter", "Composite":{ "temp1_input": 39.850, "temp1_max": 81.850, "temp1_min": -273.150, "temp1_crit": 84.850, "temp1_alarm": 0.000 }, "Sensor 1":{ "temp2_input": 39.850, "temp2_max": 65261.850, "temp2_min": -273.150 }, "Sensor 2":{ "temp3_input": 51.850, "temp3_max": 65261.850, "temp3_min": -273.150 } }, "nvme-pci-4100":{ "Adapter": "PCI adapter", "Composite":{ "temp1_input": 42.850, "temp1_max": 81.850, "temp1_min": -273.150, "temp1_crit": 84.850, "temp1_alarm": 0.000 }, "Sensor 1":{ "temp2_input": 42.850, "temp2_max": 65261.850, "temp2_min": -273.150 }, "Sensor 2":{ "temp3_input": 48.850, "temp3_max": 65261.850, "temp3_min": -273.150 } }, "k10temp-pci-00db":{ "Adapter": "PCI adapter", "Tctl":{ "temp1_input": 27.750 } }, "k10temp-pci-00cb":{ "Adapter": "PCI adapter", "Tctl":{ "temp1_input": 28.000 } }, "nvme-pci-4400":{ "Adapter": "PCI adapter", "Composite":{ "temp1_input": 41.850, "temp1_max": 81.850, "temp1_min": -273.150, "temp1_crit": 84.850, "temp1_alarm": 0.000 }, "Sensor 1":{ "temp2_input": 41.850, "temp2_max": 65261.850, "temp2_min": -273.150 }, "Sensor 2":{ "temp3_input": 52.850, "temp3_max": 65261.850, "temp3_min": -273.150 } }, "nvme-pci-2100":{ "Adapter": "PCI adapter", "Composite":{ "temp1_input": 46.850, "temp1_max": 81.850, "temp1_min": -273.150, "temp1_crit": 84.850, "temp1_alarm": 0.000 }, "Sensor 1":{ "temp2_input": 46.850, "temp2_max": 65261.850, "temp2_min": -273.150 }, "Sensor 2":{ "temp3_input": 60.850, "temp3_max": 65261.850, "temp3_min": -273.150 } } }

I heard that temp values in amd board are different than intel ones. But not very sure of that.

Can you post me correct pve_temp_stats_to_influxdb2.sh values please.?

MightySlaytanic commented 12 months ago

Hi, unfortunately it can not work with the actual script logic, but I've modified the pve_temp_stats_to_influxdb2.py to allow you to specify CORETEMP_NAME="" and use the script to monitor only the 4 NVME composite temperatures.

So, you could set the variables in the .sh file as follows:

export PCH_INFO=""
export ACPITZ_INFO=""
export NVME_INFO="nvme1:nvme-pci-2100:Composite:temp1_input,nvme2:nvme-pci-4100:Composite:temp1_input,nvme3:nvme-pci-4400:Composite:temp1_input,nvme3:nvme-pci-6200:Composite:temp1_input"
export CORETEMP_NAME=""

Then, if I'll find a bit of time, I may add the logic to allow you to specify a list of k10temp entries which could be related to 4 sensors on your motherboard or 4 cores of your CPU, I definitely have no experience about that, I'm sorry.

ozgurerdogan commented 12 months ago

So you mean I can only monitor temp for 4 nvme drives? Can we add sata disk also ? Thank you for your time. I know many people are using in proxmox forum amd cpus and boards. So I am pretty sure they will also benefit. If you can find time, I can test it on my server. This is amd epyc cpu but I also have some other amd cpus like Ryzen series 5600g - 5900

MightySlaytanic commented 12 months ago

You can give a look at the other script, pve_disks_stats_to_influxdb2.py, which retrieves info (temperature included) for nvme and sata disks. Give a look at the README.md that explains how to configure the environment variables in the calling .sh script.

ozgurerdogan commented 12 months ago

Yes you are right. I will look at it in more detail. Thank you again.

ozgurerdogan commented 12 months ago

Just a quick note. With above config I am now getting:

Traceback (most recent call last): File "/pve_temp_stats_to_influxdb2.py", line 65, in <module> stats["cpu-package"] = int(data[CORETEMP_NAME]["Package id 0"]["temp1_input"]) KeyError: ''

MightySlaytanic commented 12 months ago

Did you execute a git pull to retrieve the updated version of pve_temp_stats_to_influxdb2.py?

ozgurerdogan commented 12 months ago

It is now ok. But just wondering if I can get cpu and board temps also..