PG-165: Recycle expired buckets.
parent
51522ca6d9
commit
0e8f4c489c
|
@ -136,7 +136,8 @@ CREATE VIEW pg_stat_monitor AS SELECT
|
||||||
(string_to_array(resp_calls, ',')) resp_calls,
|
(string_to_array(resp_calls, ',')) resp_calls,
|
||||||
cpu_user_time,
|
cpu_user_time,
|
||||||
cpu_sys_time
|
cpu_sys_time
|
||||||
FROM pg_stat_monitor(TRUE), pg_database WHERE dbid = oid;
|
FROM pg_stat_monitor(TRUE), pg_database WHERE dbid = oid
|
||||||
|
ORDER BY bucket_start_time;
|
||||||
|
|
||||||
CREATE FUNCTION decode_error_level(elevel int)
|
CREATE FUNCTION decode_error_level(elevel int)
|
||||||
RETURNS text
|
RETURNS text
|
||||||
|
|
|
@ -1104,6 +1104,18 @@ pg_stat_monitor_internal(FunctionCallInfo fcinfo,
|
||||||
Counters tmp;
|
Counters tmp;
|
||||||
double stddev;
|
double stddev;
|
||||||
int64 queryid = entry->key.queryid;
|
int64 queryid = entry->key.queryid;
|
||||||
|
struct tm tm;
|
||||||
|
time_t bucket_t,current_t;
|
||||||
|
double diff_t;
|
||||||
|
|
||||||
|
memset(&tm, 0, sizeof(tm));
|
||||||
|
strptime(pgss->bucket_start_time[entry->key.bucket_id], "%Y-%m-%d %H:%M:%S", &tm);
|
||||||
|
bucket_t = mktime(&tm);
|
||||||
|
|
||||||
|
time(¤t_t);
|
||||||
|
diff_t = difftime(current_t, bucket_t);
|
||||||
|
if (diff_t > (PGSM_BUCKET_TIME * PGSM_MAX_BUCKETS))
|
||||||
|
continue;
|
||||||
|
|
||||||
memset(values, 0, sizeof(values));
|
memset(values, 0, sizeof(values));
|
||||||
memset(nulls, 0, sizeof(nulls));
|
memset(nulls, 0, sizeof(nulls));
|
||||||
|
@ -1273,7 +1285,8 @@ get_next_wbucket(pgssSharedState *pgss)
|
||||||
sec = lt->tm_sec - (lt->tm_sec % PGSM_BUCKET_TIME);
|
sec = lt->tm_sec - (lt->tm_sec % PGSM_BUCKET_TIME);
|
||||||
if (sec < 0)
|
if (sec < 0)
|
||||||
sec = 0;
|
sec = 0;
|
||||||
snprintf(pgss->bucket_start_time[bucket_id], sizeof(pgss->bucket_start_time[bucket_id]), "%02d-%02d-%04d %02d:%02d:%02d", lt->tm_mday, lt->tm_mon + 1, lt->tm_year + 1900, lt->tm_hour, lt->tm_min, sec);
|
snprintf(pgss->bucket_start_time[bucket_id], sizeof(pgss->bucket_start_time[bucket_id]),
|
||||||
|
"%04d-%02d-%02d %02d:%02d:%02d", lt->tm_year + 1900, lt->tm_mon + 1, lt->tm_mday, lt->tm_hour, lt->tm_min, sec);
|
||||||
return bucket_id;
|
return bucket_id;
|
||||||
}
|
}
|
||||||
return pgss->current_wbucket;
|
return pgss->current_wbucket;
|
||||||
|
|
Loading…
Reference in New Issue