aboutsummaryrefslogtreecommitdiffstats
path: root/vespa-hadoop/src/main/java/com/yahoo/vespa/hadoop/mapreduce/util/VespaCounters.java
blob: dbe47c23814417e08771cc1e75ec7272ee23db67 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
package com.yahoo.vespa.hadoop.mapreduce.util;

import org.apache.hadoop.mapreduce.Counter;
import org.apache.hadoop.mapreduce.Counters;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.TaskAttemptContext;

import java.io.IOException;

public class VespaCounters {

    public static final String GROUP = "Vespa Feed Counters";
    public static final String DOCS_OK = "Documents ok";
    public static final String DOCS_SENT = "Documents sent";
    public static final String DOCS_FAILED = "Documents failed";
    public static final String DOCS_SKIPPED = "Documents skipped";

    private final Counter documentsSent;
    private final Counter documentsOk;
    private final Counter documentsFailed;
    private final Counter documentsSkipped;


    private VespaCounters(Job job) throws IOException {
        Counters counters = job.getCounters();
        documentsSent = counters.findCounter(GROUP, DOCS_SENT);
        documentsOk = counters.findCounter(GROUP, DOCS_OK);
        documentsFailed = counters.findCounter(GROUP, DOCS_FAILED);
        documentsSkipped = counters.findCounter(GROUP, DOCS_SKIPPED);
    }


    private VespaCounters(TaskAttemptContext context) {
        documentsSent = context.getCounter(GROUP, DOCS_SENT);
        documentsOk = context.getCounter(GROUP, DOCS_OK);
        documentsFailed = context.getCounter(GROUP, DOCS_FAILED);
        documentsSkipped = context.getCounter(GROUP, DOCS_SKIPPED);
    }


    private VespaCounters(org.apache.hadoop.mapred.Counters counters) {
        documentsSent = counters.findCounter(GROUP, DOCS_SENT);
        documentsOk = counters.findCounter(GROUP, DOCS_OK);
        documentsFailed = counters.findCounter(GROUP, DOCS_FAILED);
        documentsSkipped = counters.findCounter(GROUP, DOCS_SKIPPED);
    }


    public static VespaCounters get(Job job) throws IOException {
        return new VespaCounters(job);
    }


    public static VespaCounters get(TaskAttemptContext context) {
        return new VespaCounters(context);
    }


    public static VespaCounters get(org.apache.hadoop.mapred.Counters counters) {
        return new VespaCounters(counters);

    }


    public long getDocumentsSent() {
        return documentsSent.getValue();
    }


    public void incrementDocumentsSent(long incr) {
        documentsSent.increment(incr);
    }


    public long getDocumentsOk() {
        return documentsOk.getValue();
    }


    public void incrementDocumentsOk(long incr) {
        documentsOk.increment(incr);
    }


    public long getDocumentsFailed() {
        return documentsFailed.getValue();
    }


    public void incrementDocumentsFailed(long incr) {
        documentsFailed.increment(incr);
    }


    public long getDocumentsSkipped() {
        return documentsSkipped.getValue();
    }


    public void incrementDocumentsSkipped(long incr) {
        documentsSkipped.increment(incr);
    }

}