Skip to main content
Question

monitoring the available licensed space through grafana

  • March 7, 2023
  • 4 replies
  • 9 views

maks
Forum|alt.badge.img+1
  • Participating Frequently

Hello. Could you help me? I want to monitor the available licensed space through grafana, for this I use the SELECT GET_COMPLIANCE_STATUS() function.
But I don't understand how I can use this function to get only the value in the Raw Data Size field, without displaying the rest of the fields. Is it possible?

4 replies

marcothesane
Forum|alt.badge.img+1
  • Participating Frequently
  • March 7, 2023

Try this - and then pick the column that you think fits your bill. Note there are "External", "Flex", and "Regular" audited_data, hence the last 3 rows:

marco ~/1/Vertica/supp $ vsql -U dbadmin -w pwd -h marges1 -d sbx -x -c "                                                                         
dquote> select * from license_audits order by audit_start_timestamp desc limit 3"
-[ RECORD 1 ]-------------------------+------------------------------
database_size_bytes                   | 57382
license_size_bytes                    | 1099511627776
usage_percent                         | 5.21886249771342e-08
audit_start_timestamp                 | 2023-03-06 23:16:04.429775+01
audit_end_timestamp                   | 2023-03-06 23:16:04.430837+01
confidence_level_percent              | 99
error_tolerance_percent               | 5
used_sampling                         | f
confidence_interval_lower_bound_bytes | 57382
confidence_interval_upper_bound_bytes | 57382
sample_count                          | 0
cell_count                            | 0
audited_data                          | External
-[ RECORD 2 ]-------------------------+------------------------------
database_size_bytes                   | 2320229758
license_size_bytes                    | 1099511627776
usage_percent                         | 0.000211023667179688
audit_start_timestamp                 | 2023-03-06 23:16:02.680775+01
audit_end_timestamp                   | 2023-03-06 23:16:04.426545+01
confidence_level_percent              | 99
error_tolerance_percent               | 5
used_sampling                         | t
confidence_interval_lower_bound_bytes | 2264141286
confidence_interval_upper_bound_bytes | 2376318230
sample_count                          | 9999
cell_count                            | 1387776
audited_data                          | Flex
-[ RECORD 3 ]-------------------------+------------------------------
database_size_bytes                   | 4588998836
license_size_bytes                    | 1099511627776
usage_percent                         | 0.00417367012778413
audit_start_timestamp                 | 2023-03-06 23:16:00.013569+01
audit_end_timestamp                   | 2023-03-06 23:16:02.677545+01
confidence_level_percent              | 99
error_tolerance_percent               | 5
used_sampling                         | t
confidence_interval_lower_bound_bytes | 4490315384
confidence_interval_upper_bound_bytes | 4687682288
sample_count                          | 56033
cell_count                            | 623313198
audited_data                          | Regular

maks
Forum|alt.badge.img+1
  • Author
  • Participating Frequently
  • March 10, 2023

@s_crossman thanks a lot, but with your query I get a very different value than with the query SELECT GET_COMPLIANCE_STATUS();
Why is this and what is the correct value then?

select GET_COMPLIANCE_STATUS();
                                                                                                                                       GET_COMPLIANCE_STATUS                                    
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 Raw Data Size: 0.48TB +/- 0.01TB
 License Size : 1.00TB
 Utilization  : 48%
 Audit Time   : 2023-03-09 23:59:15.232149+03
 Node count : 3
 License Node limit : 3
 Compliance Status : The database is in compliance with respect to raw data size.
select (database_size_bytes/1000000)::INTEGER as data_size_raw_mb,
base-> ((database_size_bytes/1000000)::INTEGER*(error_tolerance_percent/100)) as data_size_estimation_error_mb,
base-> audit_end_timestamp as latest_audit
base-> from license_audits
base-> where audited_data='Regular'
base-> order by audit_end_timestamp desc limit 1;
 data_size_raw_mb | data_size_estimation_error_mb |         latest_audit
------------------+-------------------------------+------------------------------
           229236 |                       11461.8 | 2023-03-09 23:59:01.48986+03

s_crossman
Forum|alt.badge.img
  • Participating Frequently
  • March 10, 2023

Hi,
I'll take another look at it. I ran on a similar 1TB license db we have and it seemed to be reasonably close (GET_COMPLIANCE_STATUS() reported .75TB raw size and license_audits reported .82TB). It may be related to different samplings but I think the background audit that runs is supposed to use the same parameters each time, and your last audit date timestamps matched.

Regards,


s_crossman
Forum|alt.badge.img
  • Participating Frequently
  • March 20, 2023

Hi,

Sorry, this got stuck in draft.

I ran a couple different tests. The docs imply that get_compliance_status sums up types regular and flex where as license_audits breaks them out. As shown below I ran audit, and it came back with 828GB. I ran a slightly different license_audit query and it shows that the entire 828gb is for regular. I also ran a sum of size for all types and got the 828gb.

My guess is in your database you may have some external and/or flex tables which impact the get_compliance_status raw result, and only if you ask for a sum in the license_audit would you see the same results.

PartPub80DB=> select audit('');

audit

842924596413
(1 row)
PartPub80DB=> select database_Size_bytes,audited_data,audit_end_timestamp from license_audits order by audit_start_timestamp desc limit 3;
database_Size_bytes | audited_data | audit_end_timestamp
---------------------+--------------+-------------------------------
0 | External | 2023-03-10 01:55:34.81215-05
0 | Flex | 2023-03-10 00:10:15.373464-05
828608126801 | Regular | 2023-03-10 00:10:15.35928-05
(3 rows)

PartPub80DB=> select sum(database_size_bytes),audit_end_timestamp from license_audits group by audit_end_timestamp order by audit_end_timestamp desc limit 1;
sum | audit_end_timestamp
--------------+------------------------------
828608126801 | 2023-03-10 01:55:34.81215-05
(1 row)