Utility.php ➔ PromClientOpenDB()   B
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 29
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 12
nc 2
nop 1
dl 0
loc 29
rs 8.8571
c 0
b 0
f 0
1
<?php
2
3
namespace Aptarus\PromClient\Utility;
4
5
use PDO;
6
7
function PromClientOpenDB($storage_dir)
8
{
9
    $file_existed = file_exists($storage_dir . '/metrics.db');
10
    $metrics_db = new PDO('sqlite:' . $storage_dir . '/metrics.db');
11
    $metrics_db->setAttribute(
12
        PDO::ATTR_ERRMODE,
13
        PDO::ERRMODE_EXCEPTION
14
    );
15
    if (!$file_existed) {
16
        $metrics_db->exec(
17
            'CREATE TABLE IF NOT EXISTS meta (
18
                var VARCHAR(128) UNIQUE ON CONFLICT REPLACE,
19
                typ VARCHAR(20),
20
                help VARCHAR(128),
21
                changed TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL)'
22
        );
23
        $metrics_db->exec(
24
            'CREATE TABLE IF NOT EXISTS metrics (
25
                var VARCHAR(128),
26
                value VARCHAR(20),
27
                labels VARCHAR(256),
28
                label_values VARCHAR(256),
29
                changed TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
30
                UNIQUE (var, labels) ON CONFLICT REPLACE)'
31
        );
32
    }
33
34
    return $metrics_db;
35
}
36
37
// vim:sw=4 ts=4 et
38