Uploaded image for project: 'ZABBIX BUGS AND ISSUES'
  1. ZABBIX BUGS AND ISSUES
  2. ZBX-26843

Inacurate readings for DB size, MSSQL by Zabbix agent 2 template

XMLWordPrintable

    • Icon: Incident report Incident report
    • Resolution: Unresolved
    • Icon: Minor Minor
    • None
    • 7.0.17
    • Agent2 plugin (G)
    • None

      The official template for Agent 2 is running item prototype:

      MSSQL DB '{#DBNAME}': Data file size

      Which is running JSONpath:

      $[?(@.counter_name=='Data File(s) Size (KB)')].cntr_value.first()

      This is a 3rd-level dependent item

      Master item runs an item key:

      mssql.perfcounter.get["{$MSSQL.URI}","{$MSSQL.USER}","{$MSSQL.PASSWORD}"]

      It looks like using an SQL query:
      https://git.zabbix.com/projects/AP/repos/mssql/browse/plugin/queries/perfcounter.get.sql

      The outcome is not satisfying (it shows 2-4 times less GB than it's true), and a suggestion- for DB size measurement comes to use a source of:

      SELECT
          db.name AS DatabaseName,
          CAST(SUM(CASE WHEN mf.type = 0 THEN mf.size * 8.0 / 1024 ELSE 0 END) AS DECIMAL(10, 2)) AS DataFileSizeMB
      FROM sys.databases db
      JOIN sys.master_files mf ON db.database_id = mf.database_id
      WHERE
          db.database_id > 4 -- Excludes system databases (master, model, msdb, tempdb)
      GROUP BY db.name
      ORDER BY db.name;
      
      SELECT
          db.name AS DatabaseName,
          CAST((mf.size * 8.0 / 1024) AS DECIMAL(10, 2)) AS LogFileSizeMB
      FROM sys.databases db
      JOIN sys.master_files mf ON db.database_id = mf.database_id
      WHERE
          mf.type_desc = 'LOG'
      	AND
          db.database_id > 4 -- Excludes system databases (master, model, msdb, tempdb)
      ORDER BY db.name;
      
      SELECT db.name AS DatabaseName,
          CAST(SUM(mf.size) * 8.0 / 1024 AS DECIMAL(10, 2)) AS TotalSizeMB
      FROM sys.databases db 
      JOIN sys.master_files mf ON db.database_id = mf.database_id
      WHERE
          db.database_id > 4 -- Excludes system databases (master, model, msdb, tempdb)
      GROUP BY db.name
      ORDER BY db.name;
       
      

      Is it possible to remaster an official template "MSSQL by Zabbix agent 2" to use this source?

        1. db-size.png
          153 kB
          Aigars Kadikis

            knaglis Kristaps Naglis
            aigars.kadikis Aigars Kadikis
            Votes:
            1 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - Not Specified
                Not Specified
                Logged:
                Time Spent - 27h
                27h