LinuxForum.Fans
Тема

conky bargraph

Автор: Rizado 19 сообщений 2715 просмотров
#351126
"BWR" написал:
Значит, это еще не конечный конфиг?

Сделал вот так:

Процессор - 6 ядер, столько же и индикаторов.

#351148
"zenon" написал:
Кусок конфига от процессора можно?

Можно :) .
lua-файл качаешь отсюда и вместо примеров настроек индикаторов, которые там приведены, вставляешь вот это:

Показать
text
    local bars_settings={
        {
            name="cpu",
            arg="cpu1",
            max=100,
            cap="s",
            angle=0,
            blocks=20,
            width=35,
            height=2,
            space=1,
            bg_colour={0x00ff00,0.15},
            fg_colour={0x00ff00,1},
            mid_colour={{0.6,0xffff00,1},{0.8,0xff0000,1}},
            smooth=true,
            alarm=80,
            alarm_colour={0xff0000,1},
            x=55,y=239
        },    
        {
            name="cpu",
            arg="cpu2",
            max=100,
            cap="s",
            angle=0,
            blocks=20,
            width=35,
            height=2,
            space=1,
            bg_colour={0x00ff00,0.15},
            fg_colour={0x00ff00,1},
            mid_colour={{0.6,0xffff00,1},{0.8,0xff0000,1}},
            smooth=true,
            alarm=80,
            alarm_colour={0xff0000,1},
            x=95,y=239
        },    
        {
            name="cpu",
            arg="cpu3",
            max=100,
            cap="s",
            angle=0,
            blocks=20,
            width=35,
            height=2,
            space=1,
            bg_colour={0x00ff00,0.15},
            fg_colour={0x00ff00,1},
            mid_colour={{0.6,0xffff00,1},{0.8,0xff0000,1}},
            smooth=true,
            alarm=80,
            alarm_colour={0xff0000,1},
            x=135,y=239
        },    
        {
            name="cpu",
            arg="cpu4",
            max=100,
            cap="s",
            angle=0,
            blocks=20,
            width=35,
            height=2,
            space=1,
            bg_colour={0x00ff00,0.15},
            fg_colour={0x00ff00,1},
            mid_colour={{0.6,0xffff00,1},{0.8,0xff0000,1}},
            smooth=true,
            alarm=80,
            alarm_colour={0xff0000,1},
            x=175,y=239
        },    
        {
            name="cpu",
            arg="cpu5",
            max=100,
            cap="s",
            angle=0,
            blocks=20,
            width=35,
            height=2,
            space=1,
            bg_colour={0x00ff00,0.15},
            fg_colour={0x00ff00,1},
            mid_colour={{0.6,0xffff00,1},{0.8,0xff0000,1}},
            smooth=true,
            alarm=80,
            alarm_colour={0xff0000,1},
            x=215,y=239
        },    
        {
            name="cpu",
            arg="cpu6",
            max=100,
            cap="s",
            angle=0,
            blocks=20,
            width=35,
            height=2,
            space=1,
            bg_colour={0x00ff00,0.15},
            fg_colour={0x00ff00,1},
            mid_colour={{0.6,0xffff00,1},{0.8,0xff0000,1}},
            smooth=true,
            alarm=80,
            alarm_colour={0xff0000,1},
            x=255,y=239
        },    
                        
        {
            name="memperc",
            arg="",
            max=100,
            cap="s",
            angle=90,
            blocks=40,
            width=25,
            height=5,
            space=1,
            bg_colour={0x00ff00,0.15},
            fg_colour={0x00ff00,1},
            mid_colour={{0.6,0xffff00,1},{0.8,0xff0000,1}},
            smooth=true,
            alarm=80,
            alarm_colour={0xff0000,1},
            x=55,y=335
        },

{ name="diskio_read", arg="/dev/sda", max=0.5, cap="s", angle=90, blocks=40, width=10, height=5, space=1, bg_colour={0x00ff00,0.15}, fg_colour={0x00ff00,1}, x=55,y=455 }, { name="diskio_write", arg="/dev/sda", max=0.05, cap="s", angle=90, blocks=40, width=10, height=5, space=1, bg_colour={0xff0000,0.15}, fg_colour={0xff0000,1}, x=55,y=475 }, }

Единственное, с чем пока не разобрался - не работает индикатор чтения и записи на диск. Играюсь с параметрами. У меня этот файл называется ".bargraph.lua" и лежит в домашнем каталоге.
А вот .conkyrc:

Показать
text
background yes
update_interval 1

cpu_avg_samples 1 net_avg_samples 2

double_buffer yes no_buffers yes text_buffer_size 2048

gap_x 10 gap_y 10 minimum_size 300 900 maximum_width 350 own_window yes own_window_type normal own_window_transparent yes own_window_argb_visual yes own_window_type normal own_window_class conky-semi own_window_hints undecorate,sticky,skip_taskbar,skip_pager,below border_inner_margin 0 border_outer_margin 0 alignment top_right

draw_shades no draw_outline no draw_borders no draw_graph_borders no

override_utf8_locale yes use_xft yes xftfont caviar dreams:size=10 xftalpha 0.5 uppercase no

default_color FFFFFF color1 f0f0f0 color2 cccccc color3 a8a8a8 color4 999999 color5 c62222 color6 0ca425

# Loading lua script for drawning bars lua_load ~/.bargraph.lua lua_draw_hook_pre main_bars

own_window_argb_value 0 own_window_colour 000000 TEXT ${font Ubuntu:size=10,weight:bold}${color5}SYSTEM INFO ${hr 2} ${offset 15}${font Ubuntu:size=10,weight:normal}${color1}$sysname $kernel ${offset 15}${font Ubuntu:size=10,weight:normal}${color1}$nodename / $user_names ${offset 15}${font Ubuntu:size=10,weight:normal}${color1}Uptime: $uptime

${font Ubuntu:size=10,weight:bold}${color5}TIME ZONES ${hr 2} ${offset 15}${font Ubuntu:size=10,weight:normal}${color1}Kiev${alignr}${tztime Europe/Kiev %l:%M:%S %P, %d.%m.%y} ${offset 15}${font Ubuntu:size=10,weight:normal}${color1}Moscow${alignr}${tztime Europe/Moscow %l:%M:%S %P, %d.%m.%y} ${offset 15}${font Ubuntu:size=10,weight:normal}${color1}Astana${alignr}${tztime Asia/Almaty %l:%M:%S %P, %d.%m.%y}

${font Ubuntu:size=10,weight:bold}${color5}SYSTEM LOADING ${hr 2} ${voffset 48}${offset 15}${font Ubuntu:size=10,weight:bold}${color6}CPU ${offset 30}${font Ubuntu:size=10,weight:normal}${color1}${top name 1}${alignr}${top cpu 1}% ${offset 30}${font Ubuntu:size=10,weight:normal}${color2}${top name 2}${alignr}${top cpu 2}% ${offset 30}${font Ubuntu:size=10,weight:normal}${color3}${top name 3}${alignr}${top cpu 3}% ${offset 30}${font Ubuntu:size=10,weight:normal}${color4}${top name 4}${alignr}${top cpu 4}% ${offset 30}${font Ubuntu:size=10,weight:normal}${color4}${top name 5}${alignr}${top cpu 5}% ${voffset 25}${offset 15}${font Ubuntu:size=10,weight:bold}${color6}MEM ${offset 30}${font Ubuntu:size=10,weight:normal}${color4}${top_mem name 1}${alignr}${top_mem mem 1}% ${offset 30}${font Ubuntu:size=10,weight:normal}${color1}${top_mem name 2}${alignr}${top_mem mem 2}% ${offset 30}${font Ubuntu:size=10,weight:normal}${color2}${top_mem name 3}${alignr}${top_mem mem 3}% ${offset 30}${font Ubuntu:size=10,weight:normal}${color3}${top_mem name 4}${alignr}${top_mem mem 4}% ${offset 30}${font Ubuntu:size=10,weight:normal}${color3}${top_mem name 4}${alignr}${top_mem mem 5}% ${voffset 29}${offset 15}${font Ubuntu:size=10,weight:bold}${color6}HDD ${offset 30}${font Ubuntu:size=10,weight:normal}${color1}/${alignr}Free: ${fs_free_perc /}% (${fs_free /} / ${fs_size /}) ${offset 30}${font Ubuntu:size=10,weight:normal}${color1}/home${alignr}Free: ${fs_free_perc /home}% (${fs_free /home} / ${fs_size /home}) ${offset 30}${font Ubuntu:size=10,weight:normal}${color1}/mnt/win_d${alignr}Free: ${fs_free_perc /mnt/win_d}% (${fs_free /mnt/win_d} / ${fs_size /mnt/win_d})

${font Ubuntu:size=10,weight:bold}${color5}NETWORK ${hr 2} ${offset 15}${font Ubuntu:size=10,weight:bold}${color6}Eth0 ${offset 30}${color1}${font Ubuntu:size=10,weight:normal}Down:${offset 10}${downspeed eth0}${alignr}${font Ubuntu:size=10,weight:normal}Total: ${totaldown} ${offset 30}${color1}${font Ubuntu:size=10,weight:normal}Up:${offset 29}${upspeed eth0}${alignr}${font Ubuntu:size=10,weight:normal}Total: ${totalup} ${font Ubuntu:size=10,weight:bold}${color4}${hr 2}

#352924
"rizado" написал:
Единственное, с чем пока не разобрался - не работает индикатор чтения и записи на диск. Играюсь с параметрами. У меня этот файл называется ".bargraph.lua" и лежит в домашнем каталоге.

Разобрался? А то у меня тоже diskio молчит:

#352925
"zenon" написал:
Разобрался? А то у меня тоже diskio молчит:

Пока нехватка времени.

#352926

rizado, есть подозрение, что если бы diskio было просто числом, то все работало бы.

#352928
text
# nano /usr/local/sbin/dfsda2
df -h /dev/sda2 | awk 'NR==2{print$5}' | cut -c1-2
# chmod a+x /usr/local/sbin/dfsda2
text
# nano bargraph.lua
...
        {
            name="exec",
            arg="dfsda2",
            max=100,
            cap="s",
            angle=90,
            blocks=40,
            width=5,
            height=7,
            space=1,
            bg_colour={0xff0000,0.15},
            fg_colour={0xff0000,1},
            x=0,y=293
        },
...

Выполнением dfsda2 будет процент (без знака %) занятого места.
Выглядеть в данном варианте будет так:

Способы грепов.

#352931
"zenon" написал:
rizado, есть подозрение, что если бы diskio было просто числом, то все работало бы.

А на основании чего оно график тогда рисует?

zenon написал:
text
# nano /usr/local/sbin/dfsda2
df -h /dev/sda2 | awk 'NR==2{print$5}' | cut -c1-2
# chmod a+x /usr/local/sbin/dfsda2

Выполнением dfsda2 будет процент (без знака %) занятого места.

А вот этого не понял :( .

#352934
"rizado" написал:
А вот этого не понял

Надо, чтобы команда появилась доступная в консоли, которая на выхлопе даст свободное место с устройства в процентах, без знака процентов:

text
# which dfsda2
/usr/local/sbin/dfsda2
# dfsda2
54
# cat /usr/local/sbin/dfsda2
df -h /dev/sda2 | awk 'NR==2{print$5}' | cut -c1-2   

Так понятней?
ы. name="exec" - имя команды которая есть в коньках, в качестве аргумента - наш исполняемый файл - arg="dfsda2".

exec command
Выполняет команду оболочки и отображает результат в conky.
#352935
"zenon" написал:
Так понятней?

Спасибо, дальше буду разбираться.

#352943

Свободное место с помощью snmp:

text
# snmpwalk -v 2c -c rouser 192.168.0.1 1.3.6.1.4.1.2021.9.1.9.1
UCD-SNMP-MIB::dskPercent.1 = INTEGER: 37
text
# snmpwalk -v 2c -c rouser 192.168.0.1 1.3.6.1.4.1.2021.9.1.9.1 | awk '{print$4}'

последняя цифра в 1.3.6.1.4.1.2021.9.1.9.1 - номер, по порядку точки монтирования, те / (root)

#353066

zenon, я понял, в чём дело с diskio_read и diskio_write. Но сам не решу проблемы - не хватает пока знаний :( .
Дело в том, что там выдаётся не чистая цифра, а с единицами изменения в текстовом виде - "KiB" или "MiB".
Идея такова:
1. Разделяемся на 2 части - цифры и единицы измерения, обрезаем пробелы.
2. Если единицы "KiB" - умножаем цифру на 1 000, "MiB" - на 1 000 000.
3. Для того, чтобы было видно малую скорость, а большая не вызывала зашкаливания - берём логарифм и приводим к масштабу, скажем, 100 миллионов байт в секунду - полная шкала.
4. Далее передаём в luа-скрипт.

#353070

rizado, ну я про это в принципе почти и говорил.
Все это без вмешательства в lua (те внутренними возможностями коньков) можно делать только через exec+script.
Но мне показания скоростей IO не нужны, хотя тоже можно из /proc/diskstats или iostat/dstat нарыть.

#353073

zenon, да красоты ради можно.

#353075

tps – количество запросов ввода/вывода в секунду

text
iostat -d | grep sda | awk '{print$2}' | cut -c1-2

Пойдёт?
ы. ерунда получилась... :_(
Вот отсюда дисковую активность выдирать надо:

text

# iostat -x -d sda
Linux 3.11.4-gentoo (localhost)     05.12.2013     _x86_64_    (8 CPU)

Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util sda 0,04 182,35 4,19 20,52 109,84 814,18 74,78 1,99 80,61 4,05 96,25 1,75 4,33

text
r/s and w/s— respectively, the number of read and write requests issued by processes to the OS for a device.
rsec/s and wsec/s — sectors read/written (each sector 512 bytes).
rkB/s and wkB/s — kilobytes read/written.
avgrq-sz — average sectors per request (for both reads and writes). Do the math — (rsec + wsec) / (r + w) = (134.13+178.84)/(10.18+9.78)=15.6798597
If you want it in kilobytes, divide by 2.
If you want it separate for reads and writes — do you own math using rkB/s and wkB/s.
avgqu-sz — average queue length for this device.
await — average response time (ms) of IO requests to a device. The name is a bit confusing as this is the total response time including wait time in the requests queue (let call it qutim), and service time that device was working servicing the requests (see next column — svctim).So the formula is await = qutim + svctim.
svctim — average time (ms) a device was servicing requests. This is a component of total response time of IO requests.
%util — this is a pretty confusing value. The man page defines it as, Percentage of CPU time during which I/O requests were issued to the device (bandwidth utilization for the device). Device saturation occurs when this value is close to 100%. A bit difficult to digest. Perhaps it’s better to think of it as percentage of time the device was servicing requests as opposed to being idle. To understand it better here is the formula:utilization = ( (read requests + write requests) * service time in ms / 1000 ms ) * 100%
    or
%util = ( r + w ) * svctim /10 = ( 10.18 + 9.78 ) * 8.88 = 17.72448

тыц

#353156

О вот так:

text
# cat /proc/diskstats | grep "sda " | awk '{print$12}'
/proc/diskstats написал:

Field 1 -- # of reads issued
Field 2 -- # of reads merged
Field 3 -- # of sectors read
Field 4 -- # of milliseconds spent reading
Field 5 -- # of writes completed
Field 6 -- # of writes merged
Field 7 -- # of sectors written
Field 8 -- # of milliseconds spent writing
Field 9 -- # of I/Os currently in progress
Field 10 -- # of milliseconds spent doing I/Os
Field 11 -- weighted # of milliseconds spent doing I/Os

Забираем 9-ое поле, максимум поставил 200, в чём измеряется не понятно, но активность винтов получается смотреть отлично.

#353345

Сначала переход зеленый - желтый - красный не нужен был, сейчас попробовал, и не пойму почему так, конфигурация из примера, те должно быть так же, как на сэмпле.
Вверху как должно быть, внизу как у меня на самом деле, те отсутствуют некоторые цвета:

#353349

zenon, ты именно пример запускал, не правил?

#353350
rizado написал:
zenon, ты именно пример запускал, не правил?

Да.

#353604

Скорее всего проблема в версии lua.
На debian sid, и на gentoo ~amd64 выглядит не правильно.
Запустил на вируалке стабильный deb:

На gentoo:

text
# lua -v
Lua 5.1.5  Copyright (C) 1994-2012 Lua.org, PUC-Rio

На стабильном deb от lua только библиотека:

text
i A liblua5.1-0                     - Shared library for the Lua interpreter ver
Войдите или зарегистрируйтесь, чтобы ответить.