pgpool2.git / summary / log / commit / refs

commit    e068eaa7720e33e6eec5e73cc96e3638230a1a7a
Author:   Guillaume Lelarge <guillaume at lelarge.info>
Date:     Sat Aug 14 06:42:08 2010 +0000

    Show start_time and create_time in a more friendly way. For both pcp and SHOW commands.


doc/pgpool-en.html | 59 ++++++++++++++++++++++++------------------------ pcp/pcp_proc_info.c | 17 +++++++++----- pool_process_reporting.c | 38 +++++++++++++++++++++---------- 3 files changed, 66 insertions(+), 48 deletions(-) diff --git a/doc/pgpool-en.html b/doc/pgpool-en.html index ce26b76c3..ea91a3aec 100644 --- a/doc/pgpool-en.html +++ b/doc/pgpool-en.html @@ -1715,13 +1715,13 @@ It has 6 columns: <p>It'll always return num_init_children lines.</p> <pre> benchs2=# show pool_processes; - pool_pid | start_time | database | username | create_time | pool_counter -----------+------------+-----------+-----------+-------------+-------------- - 4318 | 1281433036 | | | | - 4319 | 1281433036 | | | | - 4320 | 1281433036 | benchs2 | guillaume | 1281433038 | 1 - 4321 | 1281433036 | | | | - 4322 | 1281433036 | | | | + pool_pid | start_time | database | username | create_time | pool_counter +----------+---------------------+----------+-----------+---------------------+-------------- + 8465 | 2010-08-14 08:35:40 | | | | + 8466 | 2010-08-14 08:35:40 | benchs | guillaume | 2010-08-14 08:35:43 | 1 + 8467 | 2010-08-14 08:35:40 | | | | + 8468 | 2010-08-14 08:35:40 | | | | + 8469 | 2010-08-14 08:35:40 | | | | (5 lines) </pre> <h2>pool_pools</h2> @@ -1746,29 +1746,28 @@ It has 11 columns: </p> <p>It'll always return num_init_children*max_pool lines.</p> <pre> -benchs2=# show pool_pools; - pool_pid | start_time | pool_id | backend_id | database | username | create_time | majorversion | minorversion | pool_counter | pool_backendpid | pool_connected -----------+------------+---------+------------+----------+-----------+-------------+--------------+--------------+--------------+-----------------+---------------- - 4318 | 1281433036 | 0 | 0 | | | 0 | 0 | 0 | 0 | 0 | 0 - 4318 | 1281433036 | 1 | 0 | | | 0 | 0 | 0 | 0 | 0 | 0 - 4318 | 1281433036 | 2 | 0 | | | 0 | 0 | 0 | 0 | 0 | 0 - 4318 | 1281433036 | 3 | 0 | | | 0 | 0 | 0 | 0 | 0 | 0 - 4319 | 1281433036 | 0 | 0 | | | 0 | 0 | 0 | 0 | 0 | 0 - 4319 | 1281433036 | 1 | 0 | | | 0 | 0 | 0 | 0 | 0 | 0 - 4319 | 1281433036 | 2 | 0 | | | 0 | 0 | 0 | 0 | 0 | 0 - 4319 | 1281433036 | 3 | 0 | | | 0 | 0 | 0 | 0 | 0 | 0 - 4320 | 1281433036 | 0 | 0 | benchs2 | guillaume | 1281433038 | 3 | 0 | 1 | 4327 | 1 - 4320 | 1281433036 | 1 | 0 | | | 0 | 0 | 0 | 0 | 0 | 1 - 4320 | 1281433036 | 2 | 0 | | | 0 | 0 | 0 | 0 | 0 | 0 - 4320 | 1281433036 | 3 | 0 | | | 0 | 0 | 0 | 0 | 0 | 0 - 4321 | 1281433036 | 0 | 0 | | | 0 | 0 | 0 | 0 | 0 | 0 - 4321 | 1281433036 | 1 | 0 | | | 0 | 0 | 0 | 0 | 0 | 0 - 4321 | 1281433036 | 2 | 0 | | | 0 | 0 | 0 | 0 | 0 | 0 - 4321 | 1281433036 | 3 | 0 | | | 0 | 0 | 0 | 0 | 0 | 0 - 4322 | 1281433036 | 0 | 0 | | | 0 | 0 | 0 | 0 | 0 | 0 - 4322 | 1281433036 | 1 | 0 | | | 0 | 0 | 0 | 0 | 0 | 0 - 4322 | 1281433036 | 2 | 0 | | | 0 | 0 | 0 | 0 | 0 | 0 - 4322 | 1281433036 | 3 | 0 | | | 0 | 0 | 0 | 0 | 0 | 0 + pool_pid | start_time | pool_id | backend_id | database | username | create_time | majorversion | minorversion | pool_counter | pool_backendpid | pool_connected +----------+---------------------+---------+------------+----------+-----------+---------------------+--------------+--------------+--------------+-----------------+---------------- + 8465 | 2010-08-14 08:35:40 | 0 | 0 | | | | | | | | + 8465 | 2010-08-14 08:35:40 | 1 | 0 | | | | | | | | + 8465 | 2010-08-14 08:35:40 | 2 | 0 | | | | | | | | + 8465 | 2010-08-14 08:35:40 | 3 | 0 | | | | | | | | + 8466 | 2010-08-14 08:35:40 | 0 | 0 | benchs | guillaume | 2010-08-14 08:35:43 | 3 | 0 | 1 | 8473 | 1 + 8466 | 2010-08-14 08:35:40 | 1 | 0 | | | | | | | | + 8466 | 2010-08-14 08:35:40 | 2 | 0 | | | | | | | | + 8466 | 2010-08-14 08:35:40 | 3 | 0 | | | | | | | | + 8467 | 2010-08-14 08:35:40 | 0 | 0 | | | | | | | | + 8467 | 2010-08-14 08:35:40 | 1 | 0 | | | | | | | | + 8467 | 2010-08-14 08:35:40 | 2 | 0 | | | | | | | | + 8467 | 2010-08-14 08:35:40 | 3 | 0 | | | | | | | | + 8468 | 2010-08-14 08:35:40 | 0 | 0 | | | | | | | | + 8468 | 2010-08-14 08:35:40 | 1 | 0 | | | | | | | | + 8468 | 2010-08-14 08:35:40 | 2 | 0 | | | | | | | | + 8468 | 2010-08-14 08:35:40 | 3 | 0 | | | | | | | | + 8469 | 2010-08-14 08:35:40 | 0 | 0 | | | | | | | | + 8469 | 2010-08-14 08:35:40 | 1 | 0 | | | | | | | | + 8469 | 2010-08-14 08:35:40 | 2 | 0 | | | | | | | | + 8469 | 2010-08-14 08:35:40 | 3 | 0 | | | | | | | | (20 lines) </pre> </p> diff --git a/pcp/pcp_proc_info.c b/pcp/pcp_proc_info.c index 0cb08ed70..ed86aca08 100644 --- a/pcp/pcp_proc_info.c +++ b/pcp/pcp_proc_info.c @@ -25,6 +25,7 @@ #include <string.h> #include <unistd.h> #include <getopt.h> +#include <time.h> #include "pcp.h" @@ -142,29 +143,33 @@ main(int argc, char **argv) myexit(errorcode); } else { int i; + char strcreatetime[128]; + char strstarttime[128]; + strftime(strstarttime, 128, "%Y-%m-%d %H:%M:%S", localtime(&process_info->start_time)); for (i = 0; i < array_size; i++) { if (process_info->connection_info[i].database[0] == '\0') continue; + strftime(strcreatetime, 128, "%Y-%m-%d %H:%M:%S", localtime(&process_info->connection_info[i].create_time)); if (verbose) { - printf("Database : %s\nUsername : %s\nStart time : %ld\nCreation time: %ld\nMajor : %d\nMinor : %d\nCounter : %d\nPID : %d\nConnected : %d\n", + printf("Database : %s\nUsername : %s\nStart time : %s\nCreation time: %s\nMajor : %d\nMinor : %d\nCounter : %d\nPID : %d\nConnected : %d\n", process_info->connection_info[i].database, process_info->connection_info[i].user, - process_info->start_time, - process_info->connection_info[i].create_time, + strstarttime, + strcreatetime, process_info->connection_info[i].major, process_info->connection_info[i].minor, process_info->connection_info[i].counter, process_info->connection_info[i].pid, process_info->connection_info[i].connected); } else { - printf("%s %s %ld %ld %d %d %d %d %d\n", + printf("%s %s %s %s %d %d %d %d %d\n", process_info->connection_info[i].database, process_info->connection_info[i].user, - process_info->start_time, - process_info->connection_info[i].create_time, + strstarttime, + strcreatetime, process_info->connection_info[i].major, process_info->connection_info[i].minor, process_info->connection_info[i].counter, diff --git a/pool_process_reporting.c b/pool_process_reporting.c index 2cbc29c93..e9dcd0199 100644 --- a/pool_process_reporting.c +++ b/pool_process_reporting.c @@ -38,7 +38,7 @@ #define POOLCONFIG_MAXPORTLEN 6 #define POOLCONFIG_MAXSTATLEN 2 #define POOLCONFIG_MAXWEIGHTLEN 20 -#define POOLCONFIG_MAXDATELEN 20 +#define POOLCONFIG_MAXDATELEN 128 #define POOLCONFIG_MAXCOUNTLEN 16 /* config report struct*/ @@ -857,17 +857,31 @@ void pools_reporting(POOL_CONNECTION *frontend, POOL_CONNECTION_POOL *backend) { poolBE = pool*MAX_NUM_BACKENDS+backend_id; snprintf(pools[lines].pool_pid, POOLCONFIG_MAXCOUNTLEN, "%d", proc_id); - snprintf(pools[lines].start_time, POOLCONFIG_MAXDATELEN, "%ld", pi->start_time); + strftime(pools[lines].start_time, POOLCONFIG_MAXDATELEN, "%Y-%m-%d %H:%M:%S", localtime(&pi->start_time)); snprintf(pools[lines].pool_id, POOLCONFIG_MAXCOUNTLEN, "%d", pool); snprintf(pools[lines].backend_id, POOLCONFIG_MAXCOUNTLEN, "%d", backend_id); - strncpy(pools[lines].database, pi->connection_info[poolBE].database, POOLCONFIG_MAXIDENTLEN); - strncpy(pools[lines].username, pi->connection_info[poolBE].user, POOLCONFIG_MAXIDENTLEN); - snprintf(pools[lines].create_time, POOLCONFIG_MAXDATELEN, "%ld", pi->connection_info[poolBE].create_time); - snprintf(pools[lines].pool_majorversion, POOLCONFIG_MAXCOUNTLEN, "%d", pi->connection_info[poolBE].major); - snprintf(pools[lines].pool_minorversion, POOLCONFIG_MAXCOUNTLEN, "%d", pi->connection_info[poolBE].minor); - snprintf(pools[lines].pool_counter, POOLCONFIG_MAXCOUNTLEN, "%d", pi->connection_info[poolBE].counter); - snprintf(pools[lines].pool_backendpid, POOLCONFIG_MAXCOUNTLEN, "%d", ntohl(pi->connection_info[poolBE].pid)); - snprintf(pools[lines].pool_connected, POOLCONFIG_MAXCOUNTLEN, "%d", pi->connection_info[poolBE].connected); + if (strlen(pi->connection_info[poolBE].database) == 0) + { + strncpy(pools[lines].database, "", POOLCONFIG_MAXIDENTLEN); + strncpy(pools[lines].username, "", POOLCONFIG_MAXIDENTLEN); + strncpy(pools[lines].create_time, "", POOLCONFIG_MAXDATELEN); + strncpy(pools[lines].pool_majorversion, "", POOLCONFIG_MAXCOUNTLEN); + strncpy(pools[lines].pool_minorversion, "", POOLCONFIG_MAXCOUNTLEN); + strncpy(pools[lines].pool_counter, "", POOLCONFIG_MAXCOUNTLEN); + strncpy(pools[lines].pool_backendpid, "", POOLCONFIG_MAXCOUNTLEN); + strncpy(pools[lines].pool_connected, "", POOLCONFIG_MAXCOUNTLEN); + } + else + { + strncpy(pools[lines].database, pi->connection_info[poolBE].database, POOLCONFIG_MAXIDENTLEN); + strncpy(pools[lines].username, pi->connection_info[poolBE].user, POOLCONFIG_MAXIDENTLEN); + strftime(pools[lines].create_time, POOLCONFIG_MAXDATELEN, "%Y-%m-%d %H:%M:%S", localtime(&pi->connection_info[poolBE].create_time)); + snprintf(pools[lines].pool_majorversion, POOLCONFIG_MAXCOUNTLEN, "%d", pi->connection_info[poolBE].major); + snprintf(pools[lines].pool_minorversion, POOLCONFIG_MAXCOUNTLEN, "%d", pi->connection_info[poolBE].minor); + snprintf(pools[lines].pool_counter, POOLCONFIG_MAXCOUNTLEN, "%d", pi->connection_info[poolBE].counter); + snprintf(pools[lines].pool_backendpid, POOLCONFIG_MAXCOUNTLEN, "%d", ntohl(pi->connection_info[poolBE].pid)); + snprintf(pools[lines].pool_connected, POOLCONFIG_MAXCOUNTLEN, "%d", pi->connection_info[poolBE].connected); + } lines++; } } @@ -1131,7 +1145,7 @@ void processes_reporting(POOL_CONNECTION *frontend, POOL_CONNECTION_POOL *backen pi = pool_get_process_info(proc_id); snprintf(processes[child].pool_pid, POOLCONFIG_MAXCOUNTLEN, "%d", proc_id); - snprintf(processes[child].start_time, POOLCONFIG_MAXDATELEN, "%ld", pi->start_time); + strftime(processes[child].start_time, POOLCONFIG_MAXDATELEN, "%Y-%m-%d %H:%M:%S", localtime(&pi->start_time)); strncpy(processes[child].database, "", POOLCONFIG_MAXIDENTLEN); strncpy(processes[child].username, "", POOLCONFIG_MAXIDENTLEN); strncpy(processes[child].create_time, "", POOLCONFIG_MAXDATELEN); @@ -1144,7 +1158,7 @@ void processes_reporting(POOL_CONNECTION *frontend, POOL_CONNECTION_POOL *backen { strncpy(processes[child].database, pi->connection_info[poolBE].database, POOLCONFIG_MAXIDENTLEN); strncpy(processes[child].username, pi->connection_info[poolBE].user, POOLCONFIG_MAXIDENTLEN); - snprintf(processes[child].create_time, POOLCONFIG_MAXDATELEN, "%ld", pi->connection_info[poolBE].create_time); + strftime(processes[child].create_time, POOLCONFIG_MAXDATELEN, "%Y-%m-%d %H:%M:%S", localtime(&pi->connection_info[poolBE].create_time)); snprintf(processes[child].pool_counter, POOLCONFIG_MAXCOUNTLEN, "%d", pi->connection_info[poolBE].counter); } } [parent: 1705efa016ed]