3 ms·
For another alternative: I added some monitoring, by using file_fdw. This is a standard pg extension that presents files or program stdout as tables. So I fi
by hyperman1 4y ago
For another alternative: I added some monitoring, by using file_fdw. This is a standard pg extension that presents files or program stdout as tables. So I file_fdw'd some files in /proc and some system utilities.
- djbusby 4y agoI would like to see your magic please.
- hyperman1 4y agoNot much magic in there, to be honest: Setup like this: CREATE EXTENSION file_fdw; CREATE SERVER pglog FOREIGN DATA WRAPPER file_fdw; then do this for the easy interpretable proc files: CREATE FOREIGN TABLE IF NOT EXISTS proc_loadavg( load1 decimal, load5 decimal, load15 decimal, threads_runnable_total text, most_recent_pid integer ) SERVER pglog OPTIONS ( filename '/proc/loadavg', header 'false',delimiter ' ' ); For harder things, read the file as lines instead of fields, then create a view with some regexes to split it in fields: CREATE FOREIGN TABLE IF NOT EXISTS proc_meminfo( line text ) SERVER pglog OPTIONS ( filename '/proc/meminfo', header 'false',delimiter '$' ); CREATE OR REPLACE VIEW proc_meminfo_interpreted AS WITH arr AS (SELECT regexp_split_to_array(line,':| +') a FROM proc_meminfo) SELECT a[1] as name,a[3] as value FROM arr; Hardest part is creating semi-legible source code in HN ;-)