Gauge::increment()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 1
dl 0
loc 3
ccs 0
cts 2
cp 0
crap 2
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace Krenor\Prometheus\Metrics;
4
5
use Krenor\Prometheus\Contracts\Types\Settable;
6
use Krenor\Prometheus\Contracts\Types\Decrementable;
7
use Krenor\Prometheus\Contracts\Types\Incrementable;
8
use Krenor\Prometheus\Metrics\Concerns\TracksExecutionTime;
9
10
abstract class Gauge extends Metric implements Incrementable, Decrementable, Settable
11
{
12
    use TracksExecutionTime;
13
14
    /**
15
     * {@inheritdoc}
16
     */
17 15
    public function type(): string
18
    {
19 15
        return 'gauge';
20
    }
21
22
    /**
23
     * {@inheritdoc}
24
     */
25
    public function increment(array $labels = []): static
26
    {
27
        return $this->incrementBy(1, $labels);
28
    }
29
30
    /**
31
     * {@inheritdoc}
32
     */
33 10
    public function incrementBy(float $value, array $labels = []): static
34
    {
35 10
        static::$storage->increment($this, $value, $labels);
36
37 10
        return $this;
38
    }
39
40
    /**
41
     * {@inheritdoc}
42
     */
43
    public function decrement(array $labels = []): static
44
    {
45
        return $this->decrementBy(1, $labels);
46
    }
47
48
    /**
49
     * {@inheritdoc}
50
     */
51 5
    public function decrementBy(float $value, array $labels = []): static
52
    {
53 5
        static::$storage->decrement($this, $value, $labels);
54
55 5
        return $this;
56
    }
57
58
    /**
59
     * {@inheritdoc}
60
     */
61 5
    public function set(float $value, array $labels = []): static
62
    {
63 5
        static::$storage->set($this, $value, $labels);
64
65 5
        return $this;
66
    }
67
68
    /**
69
     * {@inheritdoc}
70
     */
71
    protected function track(float $value, array $labels = []): void
72
    {
73
        $this->set($value, $labels);
74
    }
75
}
76