diff --git a/.clang-format b/.clang-format deleted file mode 100644 index a85545463..000000000 --- a/.clang-format +++ /dev/null @@ -1,51 +0,0 @@ -BasedOnStyle: Google -AccessModifierOffset: -1 -AlignEscapedNewlinesLeft: true -AlignTrailingComments: true -AllowAllParametersOfDeclarationOnNextLine: false -AllowShortFunctionsOnASingleLine: true -AllowShortIfStatementsOnASingleLine: false -AllowShortLoopsOnASingleLine: false -#AlwaysBreakBeforeMultilineStrings: true -AlwaysBreakTemplateDeclarations: true -BinPackParameters: true -BreakBeforeBinaryOperators: false -BreakBeforeBraces: Linux -BreakBeforeTernaryOperators: true -BreakConstructorInitializersBeforeComma: false -ColumnLimit: 0 -CommentPragmas: '^ IWYU pragma:' -ConstructorInitializerAllOnOneLineOrOnePerLine: true -ConstructorInitializerIndentWidth: 2 -ContinuationIndentWidth: 2 -Cpp11BracedListStyle: true -DerivePointerBinding: false -ExperimentalAutoDetectBinPacking: false -IndentCaseLabels: true -IndentFunctionDeclarationAfterType: true -IndentWidth: 2 -# It is broken on windows. Breaks all #include "header.h" -Language: Cpp -MaxEmptyLinesToKeep: 1 -KeepEmptyLinesAtTheStartOfBlocks: true -NamespaceIndentation: None -ObjCSpaceAfterProperty: false -ObjCSpaceBeforeProtocolList: false -PenaltyBreakBeforeFirstCallParameter: 1 -PenaltyBreakComment: 300 -PenaltyBreakFirstLessLess: 120 -PenaltyBreakString: 1000 -PenaltyExcessCharacter: 1000000 -PenaltyReturnTypeOnItsOwnLine: 200 -SortIncludes: false -SpaceBeforeAssignmentOperators: true -SpaceBeforeParens: ControlStatements -SpaceInEmptyParentheses: false -SpacesBeforeTrailingComments: 1 -SpacesInAngles: false -SpacesInContainerLiterals: true -SpacesInCStyleCastParentheses: false -SpacesInParentheses: false -Standard: Cpp11 -TabWidth: 2 -UseTab: Never diff --git a/.codecov.yml b/.codecov.yml deleted file mode 100644 index 2e3fe02be..000000000 --- a/.codecov.yml +++ /dev/null @@ -1,20 +0,0 @@ -codecov: - notify: - after_n_builds: 1 - -coverage: - precision: 2 - round: nearest - range: 60...90 - status: - project: true - patch: true - changes: false - -ignore: - - docs/* - - test/* - - src/Transports/* - - examples/* - -comment: false diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index b2730031e..000000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,73 +0,0 @@ -name: Build and test - -on: [pull_request] - -jobs: - ubuntu: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Install boost, curl and lcov - run: | - sudo apt-get update - sudo apt-get install -yq libcurl4-openssl-dev libboost-system1.74-dev libboost-test1.74-dev libboost-program-options1.74-dev lcov - - name: Run CMake - run: mkdir build && cd build && cmake .. -DCMAKE_BUILD_TYPE=Debug - - name: Build project - run: cd build && make -j - - name: Test - run: cd build && ctest --output-on-failure - - name: Generate codecov report - run: | - cd build - set -x - lcov --directory . --capture --output-file coverage.info - lcov --remove coverage.info '/opt/*' '/usr/*' --output-file coverage.info - lcov --list coverage.info - - uses: codecov/codecov-action@v1 - with: - token: ${{ secrets.CODECOV_TOKEN }} - file: build/coverage.info - fail_ci_if_error: true - macos: - runs-on: macos-latest - steps: - - uses: actions/checkout@v2 - - name: Install boost - run: brew install boost - - name: Run CMake - run: mkdir build && cd build && cmake .. - - name: Build project - run: cd build && make -j - - name: Test - run: cd build && ctest --output-on-failure - alma9: - runs-on: [self-hosted, alma9] - steps: - - uses: actions/checkout@v2 - - name: CMake - run: mkdir build && cd build && source /opt/rh/gcc-toolset-12/enable && cmake .. - - name: Build - run: cd build && make -j 2 - - name: Test - run: cd build && ctest --output-on-failure - cs8: - runs-on: [self-hosted, cs8] - steps: - - uses: actions/checkout@v2 - - name: CMake - run: mkdir build && cd build && source /opt/rh/gcc-toolset-12/enable && cmake .. - - name: Build - run: cd build && make -j 2 - - name: Test - run: cd build && ctest --output-on-failure - cc7: - runs-on: [self-hosted, cc7] - steps: - - uses: actions/checkout@v2 - - name: CMake - run: mkdir build && cd build && source /opt/rh/devtoolset-9/enable && cmake3 .. - - name: Build - run: cd build && make -j 2 - - name: Test - run: cd build && ctest3 --output-on-failure diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml deleted file mode 100644 index 5892d25c8..000000000 --- a/.github/workflows/format.yml +++ /dev/null @@ -1,33 +0,0 @@ -name: Clang format - -on: [pull_request] - -jobs: - clang-format: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - with: - ref: ${{ github.event.pull_request.head.sha }} - - - name: Install prerequisites - run: | - sudo update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/clang-format-11 100 - sudo update-alternatives --install /usr/bin/git-clang-format git-clang-format /usr/bin/git-clang-format-11 100 - - - name: Run clang-format on changed files - run: | - set -x - git fetch origin ${{ github.event.pull_request.base.ref }} - base_commit=$(git rev-parse ${{ github.event.pull_request.base.sha }}) - result_output=$(git diff --diff-filter d --name-only "$base_commit" | - xargs -d '\n' git-clang-format --commit "$base_commit" --diff --style file) - if [ "$result_output" = 'no modified files to format' ] || - [ "$result_output" = 'clang-format did not modify any files' ] - then - exit 0 - else - git-clang-format --commit "$base_commit" --diff --style file - echo "$result_output" - exit 1 - fi diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index 214a3cae9..000000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,27 +0,0 @@ -name: Release - -on: - release: - types: [published] - -jobs: - alidist: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - with: - repository: 'alisw/alidist' - - name: Change version in recipe - run: | - set +x - CURRENT_VERSION=`cat monitoring.sh | grep "tag:" | awk '{print $2}'` - sed -i "s/${CURRENT_VERSION}/${{ github.event.release.tag_name }}/g" monitoring.sh - - name: Create PR in alidist - uses: peter-evans/create-pull-request@v3 - with: - token: ${{ secrets.PAT }} - commit-message: Bump monitoring - author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com> - branch: monitoring-${{ github.event.release.tag_name }} - body: Auto-generated PR for the following release ${{ github.event.release.html_url }} - title: Bump monitoring to ${{ github.event.release.tag_name }} diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 949fb5640..000000000 --- a/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -/build/ -.project -.cproject -*~ -.idea -examples/config.ini -/cmake-build-debug/ diff --git a/1-Basic_8cxx.html b/1-Basic_8cxx.html new file mode 100644 index 000000000..8d9bdf511 --- /dev/null +++ b/1-Basic_8cxx.html @@ -0,0 +1,144 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/examples/1-Basic.cxx File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
1-Basic.cxx File Reference
+
+
+
+Include dependency graph for 1-Basic.cxx:
+
+
+
+
+
+ + + +

+Functions

+int main ()
 
+

Detailed Description

+
+
+ + + + diff --git a/1-Basic_8cxx.js b/1-Basic_8cxx.js new file mode 100644 index 000000000..72bc66f2a --- /dev/null +++ b/1-Basic_8cxx.js @@ -0,0 +1,4 @@ +var 1_Basic_8cxx = +[ + [ "main", "1-Basic_8cxx.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/1-Basic_8cxx__incl.dot b/1-Basic_8cxx__incl.dot new file mode 100644 index 000000000..ce96c220b --- /dev/null +++ b/1-Basic_8cxx__incl.dot @@ -0,0 +1,68 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/examples/1-Basic.cxx" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/1-Basic.cxx",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="Monitoring/MonitoringFactory.h",height=0.2,width=0.4,color="black",URL="$MonitoringFactory_8h.html"]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="Monitoring/Monitoring.h",height=0.2,width=0.4,color="black",URL="$Monitoring_8h.html"]; + Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="atomic",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="chrono",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="map",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="memory",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="string",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="thread",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="tuple",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="unordered_map",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="vector",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [label="deque",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 [label="Monitoring/Backend.h",height=0.2,width=0.4,color="black",URL="$Backend_8h.html"]; + Node14 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 [label="Monitoring/Metric.h",height=0.2,width=0.4,color="black",URL="$Metric_8h.html"]; + Node15 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node16 [label="regex",height=0.2,width=0.4,color="grey75"]; + Node15 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node17 [label="variant",height=0.2,width=0.4,color="grey75"]; + Node15 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node18 [label="Tags.h",height=0.2,width=0.4,color="black",URL="$Tags_8h.html"]; + Node18 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 [label="Monitoring/DerivedMetrics.h",height=0.2,width=0.4,color="black",URL="$DerivedMetrics_8h.html"]; + Node19 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 [label="Monitoring/ProcessMonitor.h",height=0.2,width=0.4,color="black",URL="$ProcessMonitor_8h.html"]; + Node20 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node21 [label="boost/algorithm/string.hpp",height=0.2,width=0.4,color="grey75"]; + Node20 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node22 [label="iostream",height=0.2,width=0.4,color="grey75"]; + Node20 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node23 [label="sys/resource.h",height=0.2,width=0.4,color="grey75"]; + Node20 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/1-Basic_8cxx__incl.map b/1-Basic_8cxx__incl.map new file mode 100644 index 000000000..be267a1e9 --- /dev/null +++ b/1-Basic_8cxx__incl.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/1-Basic_8cxx__incl.md5 b/1-Basic_8cxx__incl.md5 new file mode 100644 index 000000000..5656da9c6 --- /dev/null +++ b/1-Basic_8cxx__incl.md5 @@ -0,0 +1 @@ +57adae4c3b9aaa7da8975c94ed449b40 \ No newline at end of file diff --git a/1-Basic_8cxx__incl.svg b/1-Basic_8cxx__incl.svg new file mode 100644 index 000000000..e83509728 --- /dev/null +++ b/1-Basic_8cxx__incl.svg @@ -0,0 +1,428 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/home/travis/build/AliceO2Group/Monitoring/examples/1-Basic.cxx + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/examples/1-Basic.cxx + + +Node2 + + +Monitoring/MonitoringFactory.h + + + + +Node1->Node2 + + + + +Node3 + + +Monitoring/Monitoring.h + + + + +Node2->Node3 + + + + +Node4 + +atomic + + +Node3->Node4 + + + + +Node5 + +chrono + + +Node3->Node5 + + + + +Node6 + +map + + +Node3->Node6 + + + + +Node7 + +memory + + +Node3->Node7 + + + + +Node8 + +string + + +Node3->Node8 + + + + +Node9 + +thread + + +Node3->Node9 + + + + +Node10 + +tuple + + +Node3->Node10 + + + + +Node11 + +unordered_map + + +Node3->Node11 + + + + +Node12 + +vector + + +Node3->Node12 + + + + +Node13 + +deque + + +Node3->Node13 + + + + +Node14 + + +Monitoring/Backend.h + + + + +Node3->Node14 + + + + +Node19 + + +Monitoring/DerivedMetrics.h + + + + +Node3->Node19 + + + + +Node20 + + +Monitoring/ProcessMonitor.h + + + + +Node3->Node20 + + + + +Node14->Node5 + + + + +Node14->Node8 + + + + +Node15 + + +Monitoring/Metric.h + + + + +Node14->Node15 + + + + +Node15->Node5 + + + + +Node15->Node6 + + + + +Node15->Node8 + + + + +Node15->Node12 + + + + +Node16 + +regex + + +Node15->Node16 + + + + +Node17 + +variant + + +Node15->Node17 + + + + +Node18 + + +Tags.h + + + + +Node15->Node18 + + + + +Node18->Node8 + + + + +Node19->Node7 + + + + +Node19->Node8 + + + + +Node19->Node11 + + + + +Node19->Node12 + + + + +Node19->Node15 + + + + +Node20->Node4 + + + + +Node20->Node8 + + + + +Node20->Node12 + + + + +Node20->Node15 + + + + +Node21 + +boost/algorithm/string.hpp + + +Node20->Node21 + + + + +Node22 + +iostream + + +Node20->Node22 + + + + +Node23 + +sys/resource.h + + +Node20->Node23 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/1-Basic_8cxx__incl_org.svg b/1-Basic_8cxx__incl_org.svg new file mode 100644 index 000000000..9b024f04f --- /dev/null +++ b/1-Basic_8cxx__incl_org.svg @@ -0,0 +1,340 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/examples/1-Basic.cxx + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/examples/1-Basic.cxx + + +Node2 + + +Monitoring/MonitoringFactory.h + + + + +Node1->Node2 + + + + +Node3 + + +Monitoring/Monitoring.h + + + + +Node2->Node3 + + + + +Node4 + +atomic + + +Node3->Node4 + + + + +Node5 + +chrono + + +Node3->Node5 + + + + +Node6 + +map + + +Node3->Node6 + + + + +Node7 + +memory + + +Node3->Node7 + + + + +Node8 + +string + + +Node3->Node8 + + + + +Node9 + +thread + + +Node3->Node9 + + + + +Node10 + +tuple + + +Node3->Node10 + + + + +Node11 + +unordered_map + + +Node3->Node11 + + + + +Node12 + +vector + + +Node3->Node12 + + + + +Node13 + +deque + + +Node3->Node13 + + + + +Node14 + + +Monitoring/Backend.h + + + + +Node3->Node14 + + + + +Node19 + + +Monitoring/DerivedMetrics.h + + + + +Node3->Node19 + + + + +Node20 + + +Monitoring/ProcessMonitor.h + + + + +Node3->Node20 + + + + +Node14->Node5 + + + + +Node14->Node8 + + + + +Node15 + + +Monitoring/Metric.h + + + + +Node14->Node15 + + + + +Node15->Node5 + + + + +Node15->Node6 + + + + +Node15->Node8 + + + + +Node15->Node12 + + + + +Node16 + +regex + + +Node15->Node16 + + + + +Node17 + +variant + + +Node15->Node17 + + + + +Node18 + + +Tags.h + + + + +Node15->Node18 + + + + +Node18->Node8 + + + + +Node19->Node7 + + + + +Node19->Node8 + + + + +Node19->Node11 + + + + +Node19->Node12 + + + + +Node19->Node15 + + + + +Node20->Node4 + + + + +Node20->Node8 + + + + +Node20->Node12 + + + + +Node20->Node15 + + + + +Node21 + +boost/algorithm/string.hpp + + +Node20->Node21 + + + + +Node22 + +iostream + + +Node20->Node22 + + + + +Node23 + +sys/resource.h + + +Node20->Node23 + + + + + diff --git a/10-Buffering_8cxx.html b/10-Buffering_8cxx.html new file mode 100644 index 000000000..b4644fa81 --- /dev/null +++ b/10-Buffering_8cxx.html @@ -0,0 +1,151 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/examples/10-Buffering.cxx File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
10-Buffering.cxx File Reference
+
+
+
+Include dependency graph for 10-Buffering.cxx:
+
+
+
+
+
+ + + +

+Typedefs

+using Monitoring = o2::monitoring::MonitoringFactory
 
+ + + +

+Functions

+int main ()
 
+

Detailed Description

+
+
+ + + + diff --git a/10-Buffering_8cxx.js b/10-Buffering_8cxx.js new file mode 100644 index 000000000..8b256329d --- /dev/null +++ b/10-Buffering_8cxx.js @@ -0,0 +1,5 @@ +var 10_Buffering_8cxx = +[ + [ "Monitoring", "10-Buffering_8cxx.html#acb6d4b5797791875a3522f9eee61964a", null ], + [ "main", "10-Buffering_8cxx.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/10-Buffering_8cxx__incl.dot b/10-Buffering_8cxx__incl.dot new file mode 100644 index 000000000..8d7363d71 --- /dev/null +++ b/10-Buffering_8cxx__incl.dot @@ -0,0 +1,68 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/examples/10-Buffering.cxx" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/10-Buffering.cxx",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="Monitoring/MonitoringFactory.h",height=0.2,width=0.4,color="black",URL="$MonitoringFactory_8h.html"]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="Monitoring/Monitoring.h",height=0.2,width=0.4,color="black",URL="$Monitoring_8h.html"]; + Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="atomic",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="chrono",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="map",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="memory",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="string",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="thread",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="tuple",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="unordered_map",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="vector",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [label="deque",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 [label="Monitoring/Backend.h",height=0.2,width=0.4,color="black",URL="$Backend_8h.html"]; + Node14 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 [label="Monitoring/Metric.h",height=0.2,width=0.4,color="black",URL="$Metric_8h.html"]; + Node15 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node16 [label="regex",height=0.2,width=0.4,color="grey75"]; + Node15 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node17 [label="variant",height=0.2,width=0.4,color="grey75"]; + Node15 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node18 [label="Tags.h",height=0.2,width=0.4,color="black",URL="$Tags_8h.html"]; + Node18 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 [label="Monitoring/DerivedMetrics.h",height=0.2,width=0.4,color="black",URL="$DerivedMetrics_8h.html"]; + Node19 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 [label="Monitoring/ProcessMonitor.h",height=0.2,width=0.4,color="black",URL="$ProcessMonitor_8h.html"]; + Node20 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node21 [label="boost/algorithm/string.hpp",height=0.2,width=0.4,color="grey75"]; + Node20 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node22 [label="iostream",height=0.2,width=0.4,color="grey75"]; + Node20 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node23 [label="sys/resource.h",height=0.2,width=0.4,color="grey75"]; + Node20 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/10-Buffering_8cxx__incl.map b/10-Buffering_8cxx__incl.map new file mode 100644 index 000000000..4dbb0ebc2 --- /dev/null +++ b/10-Buffering_8cxx__incl.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/10-Buffering_8cxx__incl.md5 b/10-Buffering_8cxx__incl.md5 new file mode 100644 index 000000000..3c15ddc16 --- /dev/null +++ b/10-Buffering_8cxx__incl.md5 @@ -0,0 +1 @@ +4cacc3d61dec4bc8734b346adbb2065c \ No newline at end of file diff --git a/10-Buffering_8cxx__incl.svg b/10-Buffering_8cxx__incl.svg new file mode 100644 index 000000000..fcd781fe8 --- /dev/null +++ b/10-Buffering_8cxx__incl.svg @@ -0,0 +1,428 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/home/travis/build/AliceO2Group/Monitoring/examples/10-Buffering.cxx + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/examples/10-Buffering.cxx + + +Node2 + + +Monitoring/MonitoringFactory.h + + + + +Node1->Node2 + + + + +Node3 + + +Monitoring/Monitoring.h + + + + +Node2->Node3 + + + + +Node4 + +atomic + + +Node3->Node4 + + + + +Node5 + +chrono + + +Node3->Node5 + + + + +Node6 + +map + + +Node3->Node6 + + + + +Node7 + +memory + + +Node3->Node7 + + + + +Node8 + +string + + +Node3->Node8 + + + + +Node9 + +thread + + +Node3->Node9 + + + + +Node10 + +tuple + + +Node3->Node10 + + + + +Node11 + +unordered_map + + +Node3->Node11 + + + + +Node12 + +vector + + +Node3->Node12 + + + + +Node13 + +deque + + +Node3->Node13 + + + + +Node14 + + +Monitoring/Backend.h + + + + +Node3->Node14 + + + + +Node19 + + +Monitoring/DerivedMetrics.h + + + + +Node3->Node19 + + + + +Node20 + + +Monitoring/ProcessMonitor.h + + + + +Node3->Node20 + + + + +Node14->Node5 + + + + +Node14->Node8 + + + + +Node15 + + +Monitoring/Metric.h + + + + +Node14->Node15 + + + + +Node15->Node5 + + + + +Node15->Node6 + + + + +Node15->Node8 + + + + +Node15->Node12 + + + + +Node16 + +regex + + +Node15->Node16 + + + + +Node17 + +variant + + +Node15->Node17 + + + + +Node18 + + +Tags.h + + + + +Node15->Node18 + + + + +Node18->Node8 + + + + +Node19->Node7 + + + + +Node19->Node8 + + + + +Node19->Node11 + + + + +Node19->Node12 + + + + +Node19->Node15 + + + + +Node20->Node4 + + + + +Node20->Node8 + + + + +Node20->Node12 + + + + +Node20->Node15 + + + + +Node21 + +boost/algorithm/string.hpp + + +Node20->Node21 + + + + +Node22 + +iostream + + +Node20->Node22 + + + + +Node23 + +sys/resource.h + + +Node20->Node23 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/10-Buffering_8cxx__incl_org.svg b/10-Buffering_8cxx__incl_org.svg new file mode 100644 index 000000000..5870d5df9 --- /dev/null +++ b/10-Buffering_8cxx__incl_org.svg @@ -0,0 +1,340 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/examples/10-Buffering.cxx + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/examples/10-Buffering.cxx + + +Node2 + + +Monitoring/MonitoringFactory.h + + + + +Node1->Node2 + + + + +Node3 + + +Monitoring/Monitoring.h + + + + +Node2->Node3 + + + + +Node4 + +atomic + + +Node3->Node4 + + + + +Node5 + +chrono + + +Node3->Node5 + + + + +Node6 + +map + + +Node3->Node6 + + + + +Node7 + +memory + + +Node3->Node7 + + + + +Node8 + +string + + +Node3->Node8 + + + + +Node9 + +thread + + +Node3->Node9 + + + + +Node10 + +tuple + + +Node3->Node10 + + + + +Node11 + +unordered_map + + +Node3->Node11 + + + + +Node12 + +vector + + +Node3->Node12 + + + + +Node13 + +deque + + +Node3->Node13 + + + + +Node14 + + +Monitoring/Backend.h + + + + +Node3->Node14 + + + + +Node19 + + +Monitoring/DerivedMetrics.h + + + + +Node3->Node19 + + + + +Node20 + + +Monitoring/ProcessMonitor.h + + + + +Node3->Node20 + + + + +Node14->Node5 + + + + +Node14->Node8 + + + + +Node15 + + +Monitoring/Metric.h + + + + +Node14->Node15 + + + + +Node15->Node5 + + + + +Node15->Node6 + + + + +Node15->Node8 + + + + +Node15->Node12 + + + + +Node16 + +regex + + +Node15->Node16 + + + + +Node17 + +variant + + +Node15->Node17 + + + + +Node18 + + +Tags.h + + + + +Node15->Node18 + + + + +Node18->Node8 + + + + +Node19->Node7 + + + + +Node19->Node8 + + + + +Node19->Node11 + + + + +Node19->Node12 + + + + +Node19->Node15 + + + + +Node20->Node4 + + + + +Node20->Node8 + + + + +Node20->Node12 + + + + +Node20->Node15 + + + + +Node21 + +boost/algorithm/string.hpp + + +Node20->Node21 + + + + +Node22 + +iostream + + +Node20->Node22 + + + + +Node23 + +sys/resource.h + + +Node20->Node23 + + + + + diff --git a/2-TaggedMetrics_8cxx.html b/2-TaggedMetrics_8cxx.html new file mode 100644 index 000000000..2b22c493c --- /dev/null +++ b/2-TaggedMetrics_8cxx.html @@ -0,0 +1,160 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/examples/2-TaggedMetrics.cxx File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
2-TaggedMetrics.cxx File Reference
+
+
+
+Include dependency graph for 2-TaggedMetrics.cxx:
+
+
+
+
+
+ + + +

+Functions

int main ()
 
+

Detailed Description

+

Function Documentation

+ +
+
+ + + + + + + +
int main ()
+
+

Add global tags

+ +
+
+
+
+ + + + diff --git a/2-TaggedMetrics_8cxx.js b/2-TaggedMetrics_8cxx.js new file mode 100644 index 000000000..d5c907d46 --- /dev/null +++ b/2-TaggedMetrics_8cxx.js @@ -0,0 +1,4 @@ +var 2_TaggedMetrics_8cxx = +[ + [ "main", "2-TaggedMetrics_8cxx.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/2-TaggedMetrics_8cxx__incl.dot b/2-TaggedMetrics_8cxx__incl.dot new file mode 100644 index 000000000..ace08b476 --- /dev/null +++ b/2-TaggedMetrics_8cxx__incl.dot @@ -0,0 +1,68 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/examples/2-TaggedMetrics.cxx" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/2-TaggedMetrics.cxx",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="Monitoring/MonitoringFactory.h",height=0.2,width=0.4,color="black",URL="$MonitoringFactory_8h.html"]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="Monitoring/Monitoring.h",height=0.2,width=0.4,color="black",URL="$Monitoring_8h.html"]; + Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="atomic",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="chrono",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="map",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="memory",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="string",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="thread",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="tuple",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="unordered_map",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="vector",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [label="deque",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 [label="Monitoring/Backend.h",height=0.2,width=0.4,color="black",URL="$Backend_8h.html"]; + Node14 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 [label="Monitoring/Metric.h",height=0.2,width=0.4,color="black",URL="$Metric_8h.html"]; + Node15 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node16 [label="regex",height=0.2,width=0.4,color="grey75"]; + Node15 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node17 [label="variant",height=0.2,width=0.4,color="grey75"]; + Node15 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node18 [label="Tags.h",height=0.2,width=0.4,color="black",URL="$Tags_8h.html"]; + Node18 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 [label="Monitoring/DerivedMetrics.h",height=0.2,width=0.4,color="black",URL="$DerivedMetrics_8h.html"]; + Node19 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 [label="Monitoring/ProcessMonitor.h",height=0.2,width=0.4,color="black",URL="$ProcessMonitor_8h.html"]; + Node20 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node21 [label="boost/algorithm/string.hpp",height=0.2,width=0.4,color="grey75"]; + Node20 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node22 [label="iostream",height=0.2,width=0.4,color="grey75"]; + Node20 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node23 [label="sys/resource.h",height=0.2,width=0.4,color="grey75"]; + Node20 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/2-TaggedMetrics_8cxx__incl.map b/2-TaggedMetrics_8cxx__incl.map new file mode 100644 index 000000000..1d29adce7 --- /dev/null +++ b/2-TaggedMetrics_8cxx__incl.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/2-TaggedMetrics_8cxx__incl.md5 b/2-TaggedMetrics_8cxx__incl.md5 new file mode 100644 index 000000000..f4f7bc4d2 --- /dev/null +++ b/2-TaggedMetrics_8cxx__incl.md5 @@ -0,0 +1 @@ +cf779d69ff2d3922e046fc9997a846fc \ No newline at end of file diff --git a/2-TaggedMetrics_8cxx__incl.svg b/2-TaggedMetrics_8cxx__incl.svg new file mode 100644 index 000000000..6fe29d94c --- /dev/null +++ b/2-TaggedMetrics_8cxx__incl.svg @@ -0,0 +1,428 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/home/travis/build/AliceO2Group/Monitoring/examples/2-TaggedMetrics.cxx + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/examples/2-TaggedMetrics.cxx + + +Node2 + + +Monitoring/MonitoringFactory.h + + + + +Node1->Node2 + + + + +Node3 + + +Monitoring/Monitoring.h + + + + +Node2->Node3 + + + + +Node4 + +atomic + + +Node3->Node4 + + + + +Node5 + +chrono + + +Node3->Node5 + + + + +Node6 + +map + + +Node3->Node6 + + + + +Node7 + +memory + + +Node3->Node7 + + + + +Node8 + +string + + +Node3->Node8 + + + + +Node9 + +thread + + +Node3->Node9 + + + + +Node10 + +tuple + + +Node3->Node10 + + + + +Node11 + +unordered_map + + +Node3->Node11 + + + + +Node12 + +vector + + +Node3->Node12 + + + + +Node13 + +deque + + +Node3->Node13 + + + + +Node14 + + +Monitoring/Backend.h + + + + +Node3->Node14 + + + + +Node19 + + +Monitoring/DerivedMetrics.h + + + + +Node3->Node19 + + + + +Node20 + + +Monitoring/ProcessMonitor.h + + + + +Node3->Node20 + + + + +Node14->Node5 + + + + +Node14->Node8 + + + + +Node15 + + +Monitoring/Metric.h + + + + +Node14->Node15 + + + + +Node15->Node5 + + + + +Node15->Node6 + + + + +Node15->Node8 + + + + +Node15->Node12 + + + + +Node16 + +regex + + +Node15->Node16 + + + + +Node17 + +variant + + +Node15->Node17 + + + + +Node18 + + +Tags.h + + + + +Node15->Node18 + + + + +Node18->Node8 + + + + +Node19->Node7 + + + + +Node19->Node8 + + + + +Node19->Node11 + + + + +Node19->Node12 + + + + +Node19->Node15 + + + + +Node20->Node4 + + + + +Node20->Node8 + + + + +Node20->Node12 + + + + +Node20->Node15 + + + + +Node21 + +boost/algorithm/string.hpp + + +Node20->Node21 + + + + +Node22 + +iostream + + +Node20->Node22 + + + + +Node23 + +sys/resource.h + + +Node20->Node23 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2-TaggedMetrics_8cxx__incl_org.svg b/2-TaggedMetrics_8cxx__incl_org.svg new file mode 100644 index 000000000..d5b201a5a --- /dev/null +++ b/2-TaggedMetrics_8cxx__incl_org.svg @@ -0,0 +1,340 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/examples/2-TaggedMetrics.cxx + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/examples/2-TaggedMetrics.cxx + + +Node2 + + +Monitoring/MonitoringFactory.h + + + + +Node1->Node2 + + + + +Node3 + + +Monitoring/Monitoring.h + + + + +Node2->Node3 + + + + +Node4 + +atomic + + +Node3->Node4 + + + + +Node5 + +chrono + + +Node3->Node5 + + + + +Node6 + +map + + +Node3->Node6 + + + + +Node7 + +memory + + +Node3->Node7 + + + + +Node8 + +string + + +Node3->Node8 + + + + +Node9 + +thread + + +Node3->Node9 + + + + +Node10 + +tuple + + +Node3->Node10 + + + + +Node11 + +unordered_map + + +Node3->Node11 + + + + +Node12 + +vector + + +Node3->Node12 + + + + +Node13 + +deque + + +Node3->Node13 + + + + +Node14 + + +Monitoring/Backend.h + + + + +Node3->Node14 + + + + +Node19 + + +Monitoring/DerivedMetrics.h + + + + +Node3->Node19 + + + + +Node20 + + +Monitoring/ProcessMonitor.h + + + + +Node3->Node20 + + + + +Node14->Node5 + + + + +Node14->Node8 + + + + +Node15 + + +Monitoring/Metric.h + + + + +Node14->Node15 + + + + +Node15->Node5 + + + + +Node15->Node6 + + + + +Node15->Node8 + + + + +Node15->Node12 + + + + +Node16 + +regex + + +Node15->Node16 + + + + +Node17 + +variant + + +Node15->Node17 + + + + +Node18 + + +Tags.h + + + + +Node15->Node18 + + + + +Node18->Node8 + + + + +Node19->Node7 + + + + +Node19->Node8 + + + + +Node19->Node11 + + + + +Node19->Node12 + + + + +Node19->Node15 + + + + +Node20->Node4 + + + + +Node20->Node8 + + + + +Node20->Node12 + + + + +Node20->Node15 + + + + +Node21 + +boost/algorithm/string.hpp + + +Node20->Node21 + + + + +Node22 + +iostream + + +Node20->Node22 + + + + +Node23 + +sys/resource.h + + +Node20->Node23 + + + + + diff --git a/4-RateDerivedMetric_8cxx.html b/4-RateDerivedMetric_8cxx.html new file mode 100644 index 000000000..ffc6507a3 --- /dev/null +++ b/4-RateDerivedMetric_8cxx.html @@ -0,0 +1,144 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/examples/4-RateDerivedMetric.cxx File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
4-RateDerivedMetric.cxx File Reference
+
+
+
+Include dependency graph for 4-RateDerivedMetric.cxx:
+
+
+
+
+
+ + + +

+Functions

+int main ()
 
+

Detailed Description

+
+
+ + + + diff --git a/4-RateDerivedMetric_8cxx.js b/4-RateDerivedMetric_8cxx.js new file mode 100644 index 000000000..7bdd2e110 --- /dev/null +++ b/4-RateDerivedMetric_8cxx.js @@ -0,0 +1,4 @@ +var 4_RateDerivedMetric_8cxx = +[ + [ "main", "4-RateDerivedMetric_8cxx.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/4-RateDerivedMetric_8cxx__incl.dot b/4-RateDerivedMetric_8cxx__incl.dot new file mode 100644 index 000000000..1f57cc5fa --- /dev/null +++ b/4-RateDerivedMetric_8cxx__incl.dot @@ -0,0 +1,68 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/examples/4-RateDerivedMetric.cxx" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/4-RateDerivedMetric.cxx",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="Monitoring/MonitoringFactory.h",height=0.2,width=0.4,color="black",URL="$MonitoringFactory_8h.html"]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="Monitoring/Monitoring.h",height=0.2,width=0.4,color="black",URL="$Monitoring_8h.html"]; + Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="atomic",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="chrono",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="map",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="memory",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="string",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="thread",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="tuple",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="unordered_map",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="vector",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [label="deque",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 [label="Monitoring/Backend.h",height=0.2,width=0.4,color="black",URL="$Backend_8h.html"]; + Node14 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 [label="Monitoring/Metric.h",height=0.2,width=0.4,color="black",URL="$Metric_8h.html"]; + Node15 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node16 [label="regex",height=0.2,width=0.4,color="grey75"]; + Node15 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node17 [label="variant",height=0.2,width=0.4,color="grey75"]; + Node15 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node18 [label="Tags.h",height=0.2,width=0.4,color="black",URL="$Tags_8h.html"]; + Node18 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 [label="Monitoring/DerivedMetrics.h",height=0.2,width=0.4,color="black",URL="$DerivedMetrics_8h.html"]; + Node19 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 [label="Monitoring/ProcessMonitor.h",height=0.2,width=0.4,color="black",URL="$ProcessMonitor_8h.html"]; + Node20 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node21 [label="boost/algorithm/string.hpp",height=0.2,width=0.4,color="grey75"]; + Node20 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node22 [label="iostream",height=0.2,width=0.4,color="grey75"]; + Node20 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node23 [label="sys/resource.h",height=0.2,width=0.4,color="grey75"]; + Node20 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/4-RateDerivedMetric_8cxx__incl.map b/4-RateDerivedMetric_8cxx__incl.map new file mode 100644 index 000000000..261ffa461 --- /dev/null +++ b/4-RateDerivedMetric_8cxx__incl.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/4-RateDerivedMetric_8cxx__incl.md5 b/4-RateDerivedMetric_8cxx__incl.md5 new file mode 100644 index 000000000..0618c8d70 --- /dev/null +++ b/4-RateDerivedMetric_8cxx__incl.md5 @@ -0,0 +1 @@ +f28f63932050983e2559469202bb5d6a \ No newline at end of file diff --git a/4-RateDerivedMetric_8cxx__incl.svg b/4-RateDerivedMetric_8cxx__incl.svg new file mode 100644 index 000000000..fe5c7e434 --- /dev/null +++ b/4-RateDerivedMetric_8cxx__incl.svg @@ -0,0 +1,428 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/home/travis/build/AliceO2Group/Monitoring/examples/4-RateDerivedMetric.cxx + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/examples/4-RateDerivedMetric.cxx + + +Node2 + + +Monitoring/MonitoringFactory.h + + + + +Node1->Node2 + + + + +Node3 + + +Monitoring/Monitoring.h + + + + +Node2->Node3 + + + + +Node4 + +atomic + + +Node3->Node4 + + + + +Node5 + +chrono + + +Node3->Node5 + + + + +Node6 + +map + + +Node3->Node6 + + + + +Node7 + +memory + + +Node3->Node7 + + + + +Node8 + +string + + +Node3->Node8 + + + + +Node9 + +thread + + +Node3->Node9 + + + + +Node10 + +tuple + + +Node3->Node10 + + + + +Node11 + +unordered_map + + +Node3->Node11 + + + + +Node12 + +vector + + +Node3->Node12 + + + + +Node13 + +deque + + +Node3->Node13 + + + + +Node14 + + +Monitoring/Backend.h + + + + +Node3->Node14 + + + + +Node19 + + +Monitoring/DerivedMetrics.h + + + + +Node3->Node19 + + + + +Node20 + + +Monitoring/ProcessMonitor.h + + + + +Node3->Node20 + + + + +Node14->Node5 + + + + +Node14->Node8 + + + + +Node15 + + +Monitoring/Metric.h + + + + +Node14->Node15 + + + + +Node15->Node5 + + + + +Node15->Node6 + + + + +Node15->Node8 + + + + +Node15->Node12 + + + + +Node16 + +regex + + +Node15->Node16 + + + + +Node17 + +variant + + +Node15->Node17 + + + + +Node18 + + +Tags.h + + + + +Node15->Node18 + + + + +Node18->Node8 + + + + +Node19->Node7 + + + + +Node19->Node8 + + + + +Node19->Node11 + + + + +Node19->Node12 + + + + +Node19->Node15 + + + + +Node20->Node4 + + + + +Node20->Node8 + + + + +Node20->Node12 + + + + +Node20->Node15 + + + + +Node21 + +boost/algorithm/string.hpp + + +Node20->Node21 + + + + +Node22 + +iostream + + +Node20->Node22 + + + + +Node23 + +sys/resource.h + + +Node20->Node23 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/4-RateDerivedMetric_8cxx__incl_org.svg b/4-RateDerivedMetric_8cxx__incl_org.svg new file mode 100644 index 000000000..2e451aed4 --- /dev/null +++ b/4-RateDerivedMetric_8cxx__incl_org.svg @@ -0,0 +1,340 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/examples/4-RateDerivedMetric.cxx + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/examples/4-RateDerivedMetric.cxx + + +Node2 + + +Monitoring/MonitoringFactory.h + + + + +Node1->Node2 + + + + +Node3 + + +Monitoring/Monitoring.h + + + + +Node2->Node3 + + + + +Node4 + +atomic + + +Node3->Node4 + + + + +Node5 + +chrono + + +Node3->Node5 + + + + +Node6 + +map + + +Node3->Node6 + + + + +Node7 + +memory + + +Node3->Node7 + + + + +Node8 + +string + + +Node3->Node8 + + + + +Node9 + +thread + + +Node3->Node9 + + + + +Node10 + +tuple + + +Node3->Node10 + + + + +Node11 + +unordered_map + + +Node3->Node11 + + + + +Node12 + +vector + + +Node3->Node12 + + + + +Node13 + +deque + + +Node3->Node13 + + + + +Node14 + + +Monitoring/Backend.h + + + + +Node3->Node14 + + + + +Node19 + + +Monitoring/DerivedMetrics.h + + + + +Node3->Node19 + + + + +Node20 + + +Monitoring/ProcessMonitor.h + + + + +Node3->Node20 + + + + +Node14->Node5 + + + + +Node14->Node8 + + + + +Node15 + + +Monitoring/Metric.h + + + + +Node14->Node15 + + + + +Node15->Node5 + + + + +Node15->Node6 + + + + +Node15->Node8 + + + + +Node15->Node12 + + + + +Node16 + +regex + + +Node15->Node16 + + + + +Node17 + +variant + + +Node15->Node17 + + + + +Node18 + + +Tags.h + + + + +Node15->Node18 + + + + +Node18->Node8 + + + + +Node19->Node7 + + + + +Node19->Node8 + + + + +Node19->Node11 + + + + +Node19->Node12 + + + + +Node19->Node15 + + + + +Node20->Node4 + + + + +Node20->Node8 + + + + +Node20->Node12 + + + + +Node20->Node15 + + + + +Node21 + +boost/algorithm/string.hpp + + +Node20->Node21 + + + + +Node22 + +iostream + + +Node20->Node22 + + + + +Node23 + +sys/resource.h + + +Node20->Node23 + + + + + diff --git a/5-Benchmark_8cxx.html b/5-Benchmark_8cxx.html new file mode 100644 index 000000000..3ad7da685 --- /dev/null +++ b/5-Benchmark_8cxx.html @@ -0,0 +1,146 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/examples/5-Benchmark.cxx File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
5-Benchmark.cxx File Reference
+
+
+
#include "Monitoring/MonitoringFactory.h"
+#include <boost/program_options.hpp>
+#include <random>
+
+Include dependency graph for 5-Benchmark.cxx:
+
+
+
+
+
+ + + +

+Functions

+int main (int argc, char *argv[])
 
+

Detailed Description

+
+
+ + + + diff --git a/5-Benchmark_8cxx.js b/5-Benchmark_8cxx.js new file mode 100644 index 000000000..883e7eb02 --- /dev/null +++ b/5-Benchmark_8cxx.js @@ -0,0 +1,4 @@ +var 5_Benchmark_8cxx = +[ + [ "main", "5-Benchmark_8cxx.html#a0ddf1224851353fc92bfbff6f499fa97", null ] +]; \ No newline at end of file diff --git a/5-Benchmark_8cxx__incl.dot b/5-Benchmark_8cxx__incl.dot new file mode 100644 index 000000000..e9583065e --- /dev/null +++ b/5-Benchmark_8cxx__incl.dot @@ -0,0 +1,72 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/examples/5-Benchmark.cxx" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/5-Benchmark.cxx",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="Monitoring/MonitoringFactory.h",height=0.2,width=0.4,color="black",URL="$MonitoringFactory_8h.html"]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="Monitoring/Monitoring.h",height=0.2,width=0.4,color="black",URL="$Monitoring_8h.html"]; + Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="atomic",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="chrono",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="map",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="memory",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="string",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="thread",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="tuple",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="unordered_map",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="vector",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [label="deque",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 [label="Monitoring/Backend.h",height=0.2,width=0.4,color="black",URL="$Backend_8h.html"]; + Node14 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 [label="Monitoring/Metric.h",height=0.2,width=0.4,color="black",URL="$Metric_8h.html"]; + Node15 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node16 [label="regex",height=0.2,width=0.4,color="grey75"]; + Node15 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node17 [label="variant",height=0.2,width=0.4,color="grey75"]; + Node15 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node18 [label="Tags.h",height=0.2,width=0.4,color="black",URL="$Tags_8h.html"]; + Node18 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 [label="Monitoring/DerivedMetrics.h",height=0.2,width=0.4,color="black",URL="$DerivedMetrics_8h.html"]; + Node19 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 [label="Monitoring/ProcessMonitor.h",height=0.2,width=0.4,color="black",URL="$ProcessMonitor_8h.html"]; + Node20 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node21 [label="boost/algorithm/string.hpp",height=0.2,width=0.4,color="grey75"]; + Node20 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node22 [label="iostream",height=0.2,width=0.4,color="grey75"]; + Node20 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node23 [label="sys/resource.h",height=0.2,width=0.4,color="grey75"]; + Node20 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node24 [label="boost/program_options.hpp",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node25 [label="random",height=0.2,width=0.4,color="grey75"]; +} diff --git a/5-Benchmark_8cxx__incl.map b/5-Benchmark_8cxx__incl.map new file mode 100644 index 000000000..3460a5fd1 --- /dev/null +++ b/5-Benchmark_8cxx__incl.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/5-Benchmark_8cxx__incl.md5 b/5-Benchmark_8cxx__incl.md5 new file mode 100644 index 000000000..e7ed374de --- /dev/null +++ b/5-Benchmark_8cxx__incl.md5 @@ -0,0 +1 @@ +af0000255081cd488a4c02a478a4dfc2 \ No newline at end of file diff --git a/5-Benchmark_8cxx__incl.svg b/5-Benchmark_8cxx__incl.svg new file mode 100644 index 000000000..4805e24ed --- /dev/null +++ b/5-Benchmark_8cxx__incl.svg @@ -0,0 +1,448 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/home/travis/build/AliceO2Group/Monitoring/examples/5-Benchmark.cxx + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/examples/5-Benchmark.cxx + + +Node2 + + +Monitoring/MonitoringFactory.h + + + + +Node1->Node2 + + + + +Node24 + +boost/program_options.hpp + + +Node1->Node24 + + + + +Node25 + +random + + +Node1->Node25 + + + + +Node3 + + +Monitoring/Monitoring.h + + + + +Node2->Node3 + + + + +Node4 + +atomic + + +Node3->Node4 + + + + +Node5 + +chrono + + +Node3->Node5 + + + + +Node6 + +map + + +Node3->Node6 + + + + +Node7 + +memory + + +Node3->Node7 + + + + +Node8 + +string + + +Node3->Node8 + + + + +Node9 + +thread + + +Node3->Node9 + + + + +Node10 + +tuple + + +Node3->Node10 + + + + +Node11 + +unordered_map + + +Node3->Node11 + + + + +Node12 + +vector + + +Node3->Node12 + + + + +Node13 + +deque + + +Node3->Node13 + + + + +Node14 + + +Monitoring/Backend.h + + + + +Node3->Node14 + + + + +Node19 + + +Monitoring/DerivedMetrics.h + + + + +Node3->Node19 + + + + +Node20 + + +Monitoring/ProcessMonitor.h + + + + +Node3->Node20 + + + + +Node14->Node5 + + + + +Node14->Node8 + + + + +Node15 + + +Monitoring/Metric.h + + + + +Node14->Node15 + + + + +Node15->Node5 + + + + +Node15->Node6 + + + + +Node15->Node8 + + + + +Node15->Node12 + + + + +Node16 + +regex + + +Node15->Node16 + + + + +Node17 + +variant + + +Node15->Node17 + + + + +Node18 + + +Tags.h + + + + +Node15->Node18 + + + + +Node18->Node8 + + + + +Node19->Node7 + + + + +Node19->Node8 + + + + +Node19->Node11 + + + + +Node19->Node12 + + + + +Node19->Node15 + + + + +Node20->Node4 + + + + +Node20->Node8 + + + + +Node20->Node12 + + + + +Node20->Node15 + + + + +Node21 + +boost/algorithm/string.hpp + + +Node20->Node21 + + + + +Node22 + +iostream + + +Node20->Node22 + + + + +Node23 + +sys/resource.h + + +Node20->Node23 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/5-Benchmark_8cxx__incl_org.svg b/5-Benchmark_8cxx__incl_org.svg new file mode 100644 index 000000000..2cefab92f --- /dev/null +++ b/5-Benchmark_8cxx__incl_org.svg @@ -0,0 +1,360 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/examples/5-Benchmark.cxx + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/examples/5-Benchmark.cxx + + +Node2 + + +Monitoring/MonitoringFactory.h + + + + +Node1->Node2 + + + + +Node24 + +boost/program_options.hpp + + +Node1->Node24 + + + + +Node25 + +random + + +Node1->Node25 + + + + +Node3 + + +Monitoring/Monitoring.h + + + + +Node2->Node3 + + + + +Node4 + +atomic + + +Node3->Node4 + + + + +Node5 + +chrono + + +Node3->Node5 + + + + +Node6 + +map + + +Node3->Node6 + + + + +Node7 + +memory + + +Node3->Node7 + + + + +Node8 + +string + + +Node3->Node8 + + + + +Node9 + +thread + + +Node3->Node9 + + + + +Node10 + +tuple + + +Node3->Node10 + + + + +Node11 + +unordered_map + + +Node3->Node11 + + + + +Node12 + +vector + + +Node3->Node12 + + + + +Node13 + +deque + + +Node3->Node13 + + + + +Node14 + + +Monitoring/Backend.h + + + + +Node3->Node14 + + + + +Node19 + + +Monitoring/DerivedMetrics.h + + + + +Node3->Node19 + + + + +Node20 + + +Monitoring/ProcessMonitor.h + + + + +Node3->Node20 + + + + +Node14->Node5 + + + + +Node14->Node8 + + + + +Node15 + + +Monitoring/Metric.h + + + + +Node14->Node15 + + + + +Node15->Node5 + + + + +Node15->Node6 + + + + +Node15->Node8 + + + + +Node15->Node12 + + + + +Node16 + +regex + + +Node15->Node16 + + + + +Node17 + +variant + + +Node15->Node17 + + + + +Node18 + + +Tags.h + + + + +Node15->Node18 + + + + +Node18->Node8 + + + + +Node19->Node7 + + + + +Node19->Node8 + + + + +Node19->Node11 + + + + +Node19->Node12 + + + + +Node19->Node15 + + + + +Node20->Node4 + + + + +Node20->Node8 + + + + +Node20->Node12 + + + + +Node20->Node15 + + + + +Node21 + +boost/algorithm/string.hpp + + +Node20->Node21 + + + + +Node22 + +iostream + + +Node20->Node22 + + + + +Node23 + +sys/resource.h + + +Node20->Node23 + + + + + diff --git a/6-Increment_8cxx.html b/6-Increment_8cxx.html new file mode 100644 index 000000000..934b3a13e --- /dev/null +++ b/6-Increment_8cxx.html @@ -0,0 +1,154 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/examples/6-Increment.cxx File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
6-Increment.cxx File Reference
+
+
+
+Include dependency graph for 6-Increment.cxx:
+
+
+
+
+
+ + + + + +

+Typedefs

+using Monitoring = o2::monitoring::MonitoringFactory
 
+using DerivedMetricMode = o2::monitoring::DerivedMetricMode
 
+ + + +

+Functions

+int main ()
 
+

Detailed Description

+
+
+ + + + diff --git a/6-Increment_8cxx.js b/6-Increment_8cxx.js new file mode 100644 index 000000000..5367db6b6 --- /dev/null +++ b/6-Increment_8cxx.js @@ -0,0 +1,6 @@ +var 6_Increment_8cxx = +[ + [ "DerivedMetricMode", "6-Increment_8cxx.html#a3550d6555eccd5bc98b5938d4e99afe5", null ], + [ "Monitoring", "6-Increment_8cxx.html#acb6d4b5797791875a3522f9eee61964a", null ], + [ "main", "6-Increment_8cxx.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ] +]; \ No newline at end of file diff --git a/6-Increment_8cxx__incl.dot b/6-Increment_8cxx__incl.dot new file mode 100644 index 000000000..7199d75bd --- /dev/null +++ b/6-Increment_8cxx__incl.dot @@ -0,0 +1,68 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/examples/6-Increment.cxx" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/6-Increment.cxx",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="Monitoring/MonitoringFactory.h",height=0.2,width=0.4,color="black",URL="$MonitoringFactory_8h.html"]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="Monitoring/Monitoring.h",height=0.2,width=0.4,color="black",URL="$Monitoring_8h.html"]; + Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="atomic",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="chrono",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="map",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="memory",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="string",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="thread",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="tuple",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="unordered_map",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="vector",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [label="deque",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 [label="Monitoring/Backend.h",height=0.2,width=0.4,color="black",URL="$Backend_8h.html"]; + Node14 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 [label="Monitoring/Metric.h",height=0.2,width=0.4,color="black",URL="$Metric_8h.html"]; + Node15 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node16 [label="regex",height=0.2,width=0.4,color="grey75"]; + Node15 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node17 [label="variant",height=0.2,width=0.4,color="grey75"]; + Node15 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node18 [label="Tags.h",height=0.2,width=0.4,color="black",URL="$Tags_8h.html"]; + Node18 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 [label="Monitoring/DerivedMetrics.h",height=0.2,width=0.4,color="black",URL="$DerivedMetrics_8h.html"]; + Node19 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 [label="Monitoring/ProcessMonitor.h",height=0.2,width=0.4,color="black",URL="$ProcessMonitor_8h.html"]; + Node20 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node21 [label="boost/algorithm/string.hpp",height=0.2,width=0.4,color="grey75"]; + Node20 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node22 [label="iostream",height=0.2,width=0.4,color="grey75"]; + Node20 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node23 [label="sys/resource.h",height=0.2,width=0.4,color="grey75"]; + Node20 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/6-Increment_8cxx__incl.map b/6-Increment_8cxx__incl.map new file mode 100644 index 000000000..70bc6261a --- /dev/null +++ b/6-Increment_8cxx__incl.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/6-Increment_8cxx__incl.md5 b/6-Increment_8cxx__incl.md5 new file mode 100644 index 000000000..acce74ebe --- /dev/null +++ b/6-Increment_8cxx__incl.md5 @@ -0,0 +1 @@ +75be22494a7b8ca25653f241e359abf5 \ No newline at end of file diff --git a/6-Increment_8cxx__incl.svg b/6-Increment_8cxx__incl.svg new file mode 100644 index 000000000..3ddede24e --- /dev/null +++ b/6-Increment_8cxx__incl.svg @@ -0,0 +1,428 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/home/travis/build/AliceO2Group/Monitoring/examples/6-Increment.cxx + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/examples/6-Increment.cxx + + +Node2 + + +Monitoring/MonitoringFactory.h + + + + +Node1->Node2 + + + + +Node3 + + +Monitoring/Monitoring.h + + + + +Node2->Node3 + + + + +Node4 + +atomic + + +Node3->Node4 + + + + +Node5 + +chrono + + +Node3->Node5 + + + + +Node6 + +map + + +Node3->Node6 + + + + +Node7 + +memory + + +Node3->Node7 + + + + +Node8 + +string + + +Node3->Node8 + + + + +Node9 + +thread + + +Node3->Node9 + + + + +Node10 + +tuple + + +Node3->Node10 + + + + +Node11 + +unordered_map + + +Node3->Node11 + + + + +Node12 + +vector + + +Node3->Node12 + + + + +Node13 + +deque + + +Node3->Node13 + + + + +Node14 + + +Monitoring/Backend.h + + + + +Node3->Node14 + + + + +Node19 + + +Monitoring/DerivedMetrics.h + + + + +Node3->Node19 + + + + +Node20 + + +Monitoring/ProcessMonitor.h + + + + +Node3->Node20 + + + + +Node14->Node5 + + + + +Node14->Node8 + + + + +Node15 + + +Monitoring/Metric.h + + + + +Node14->Node15 + + + + +Node15->Node5 + + + + +Node15->Node6 + + + + +Node15->Node8 + + + + +Node15->Node12 + + + + +Node16 + +regex + + +Node15->Node16 + + + + +Node17 + +variant + + +Node15->Node17 + + + + +Node18 + + +Tags.h + + + + +Node15->Node18 + + + + +Node18->Node8 + + + + +Node19->Node7 + + + + +Node19->Node8 + + + + +Node19->Node11 + + + + +Node19->Node12 + + + + +Node19->Node15 + + + + +Node20->Node4 + + + + +Node20->Node8 + + + + +Node20->Node12 + + + + +Node20->Node15 + + + + +Node21 + +boost/algorithm/string.hpp + + +Node20->Node21 + + + + +Node22 + +iostream + + +Node20->Node22 + + + + +Node23 + +sys/resource.h + + +Node20->Node23 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/6-Increment_8cxx__incl_org.svg b/6-Increment_8cxx__incl_org.svg new file mode 100644 index 000000000..9d38d5811 --- /dev/null +++ b/6-Increment_8cxx__incl_org.svg @@ -0,0 +1,340 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/examples/6-Increment.cxx + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/examples/6-Increment.cxx + + +Node2 + + +Monitoring/MonitoringFactory.h + + + + +Node1->Node2 + + + + +Node3 + + +Monitoring/Monitoring.h + + + + +Node2->Node3 + + + + +Node4 + +atomic + + +Node3->Node4 + + + + +Node5 + +chrono + + +Node3->Node5 + + + + +Node6 + +map + + +Node3->Node6 + + + + +Node7 + +memory + + +Node3->Node7 + + + + +Node8 + +string + + +Node3->Node8 + + + + +Node9 + +thread + + +Node3->Node9 + + + + +Node10 + +tuple + + +Node3->Node10 + + + + +Node11 + +unordered_map + + +Node3->Node11 + + + + +Node12 + +vector + + +Node3->Node12 + + + + +Node13 + +deque + + +Node3->Node13 + + + + +Node14 + + +Monitoring/Backend.h + + + + +Node3->Node14 + + + + +Node19 + + +Monitoring/DerivedMetrics.h + + + + +Node3->Node19 + + + + +Node20 + + +Monitoring/ProcessMonitor.h + + + + +Node3->Node20 + + + + +Node14->Node5 + + + + +Node14->Node8 + + + + +Node15 + + +Monitoring/Metric.h + + + + +Node14->Node15 + + + + +Node15->Node5 + + + + +Node15->Node6 + + + + +Node15->Node8 + + + + +Node15->Node12 + + + + +Node16 + +regex + + +Node15->Node16 + + + + +Node17 + +variant + + +Node15->Node17 + + + + +Node18 + + +Tags.h + + + + +Node15->Node18 + + + + +Node18->Node8 + + + + +Node19->Node7 + + + + +Node19->Node8 + + + + +Node19->Node11 + + + + +Node19->Node12 + + + + +Node19->Node15 + + + + +Node20->Node4 + + + + +Node20->Node8 + + + + +Node20->Node12 + + + + +Node20->Node15 + + + + +Node21 + +boost/algorithm/string.hpp + + +Node20->Node21 + + + + +Node22 + +iostream + + +Node20->Node22 + + + + +Node23 + +sys/resource.h + + +Node20->Node23 + + + + + diff --git a/8-DbFiller_8cxx.html b/8-DbFiller_8cxx.html new file mode 100644 index 000000000..7149a8701 --- /dev/null +++ b/8-DbFiller_8cxx.html @@ -0,0 +1,146 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/examples/8-DbFiller.cxx File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
8-DbFiller.cxx File Reference
+
+
+
#include "Monitoring/MonitoringFactory.h"
+#include <boost/program_options.hpp>
+#include <random>
+
+Include dependency graph for 8-DbFiller.cxx:
+
+
+
+
+
+ + + +

+Functions

+int main (int argc, char *argv[])
 
+

Detailed Description

+
+
+ + + + diff --git a/8-DbFiller_8cxx.js b/8-DbFiller_8cxx.js new file mode 100644 index 000000000..393b67b04 --- /dev/null +++ b/8-DbFiller_8cxx.js @@ -0,0 +1,4 @@ +var 8_DbFiller_8cxx = +[ + [ "main", "8-DbFiller_8cxx.html#a0ddf1224851353fc92bfbff6f499fa97", null ] +]; \ No newline at end of file diff --git a/8-DbFiller_8cxx__incl.dot b/8-DbFiller_8cxx__incl.dot new file mode 100644 index 000000000..4ef8babb7 --- /dev/null +++ b/8-DbFiller_8cxx__incl.dot @@ -0,0 +1,72 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/examples/8-DbFiller.cxx" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/8-DbFiller.cxx",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="Monitoring/MonitoringFactory.h",height=0.2,width=0.4,color="black",URL="$MonitoringFactory_8h.html"]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="Monitoring/Monitoring.h",height=0.2,width=0.4,color="black",URL="$Monitoring_8h.html"]; + Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="atomic",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="chrono",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="map",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="memory",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="string",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="thread",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="tuple",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="unordered_map",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="vector",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [label="deque",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 [label="Monitoring/Backend.h",height=0.2,width=0.4,color="black",URL="$Backend_8h.html"]; + Node14 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 [label="Monitoring/Metric.h",height=0.2,width=0.4,color="black",URL="$Metric_8h.html"]; + Node15 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node16 [label="regex",height=0.2,width=0.4,color="grey75"]; + Node15 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node17 [label="variant",height=0.2,width=0.4,color="grey75"]; + Node15 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node18 [label="Tags.h",height=0.2,width=0.4,color="black",URL="$Tags_8h.html"]; + Node18 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 [label="Monitoring/DerivedMetrics.h",height=0.2,width=0.4,color="black",URL="$DerivedMetrics_8h.html"]; + Node19 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 [label="Monitoring/ProcessMonitor.h",height=0.2,width=0.4,color="black",URL="$ProcessMonitor_8h.html"]; + Node20 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node21 [label="boost/algorithm/string.hpp",height=0.2,width=0.4,color="grey75"]; + Node20 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node22 [label="iostream",height=0.2,width=0.4,color="grey75"]; + Node20 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node23 [label="sys/resource.h",height=0.2,width=0.4,color="grey75"]; + Node20 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node24 [label="boost/program_options.hpp",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node25 [label="random",height=0.2,width=0.4,color="grey75"]; +} diff --git a/8-DbFiller_8cxx__incl.map b/8-DbFiller_8cxx__incl.map new file mode 100644 index 000000000..8cfc85638 --- /dev/null +++ b/8-DbFiller_8cxx__incl.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/8-DbFiller_8cxx__incl.md5 b/8-DbFiller_8cxx__incl.md5 new file mode 100644 index 000000000..7df66f63f --- /dev/null +++ b/8-DbFiller_8cxx__incl.md5 @@ -0,0 +1 @@ +059ad50dc4c973934a5dcd662a652aa9 \ No newline at end of file diff --git a/8-DbFiller_8cxx__incl.svg b/8-DbFiller_8cxx__incl.svg new file mode 100644 index 000000000..4a0f33cd6 --- /dev/null +++ b/8-DbFiller_8cxx__incl.svg @@ -0,0 +1,448 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/home/travis/build/AliceO2Group/Monitoring/examples/8-DbFiller.cxx + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/examples/8-DbFiller.cxx + + +Node2 + + +Monitoring/MonitoringFactory.h + + + + +Node1->Node2 + + + + +Node24 + +boost/program_options.hpp + + +Node1->Node24 + + + + +Node25 + +random + + +Node1->Node25 + + + + +Node3 + + +Monitoring/Monitoring.h + + + + +Node2->Node3 + + + + +Node4 + +atomic + + +Node3->Node4 + + + + +Node5 + +chrono + + +Node3->Node5 + + + + +Node6 + +map + + +Node3->Node6 + + + + +Node7 + +memory + + +Node3->Node7 + + + + +Node8 + +string + + +Node3->Node8 + + + + +Node9 + +thread + + +Node3->Node9 + + + + +Node10 + +tuple + + +Node3->Node10 + + + + +Node11 + +unordered_map + + +Node3->Node11 + + + + +Node12 + +vector + + +Node3->Node12 + + + + +Node13 + +deque + + +Node3->Node13 + + + + +Node14 + + +Monitoring/Backend.h + + + + +Node3->Node14 + + + + +Node19 + + +Monitoring/DerivedMetrics.h + + + + +Node3->Node19 + + + + +Node20 + + +Monitoring/ProcessMonitor.h + + + + +Node3->Node20 + + + + +Node14->Node5 + + + + +Node14->Node8 + + + + +Node15 + + +Monitoring/Metric.h + + + + +Node14->Node15 + + + + +Node15->Node5 + + + + +Node15->Node6 + + + + +Node15->Node8 + + + + +Node15->Node12 + + + + +Node16 + +regex + + +Node15->Node16 + + + + +Node17 + +variant + + +Node15->Node17 + + + + +Node18 + + +Tags.h + + + + +Node15->Node18 + + + + +Node18->Node8 + + + + +Node19->Node7 + + + + +Node19->Node8 + + + + +Node19->Node11 + + + + +Node19->Node12 + + + + +Node19->Node15 + + + + +Node20->Node4 + + + + +Node20->Node8 + + + + +Node20->Node12 + + + + +Node20->Node15 + + + + +Node21 + +boost/algorithm/string.hpp + + +Node20->Node21 + + + + +Node22 + +iostream + + +Node20->Node22 + + + + +Node23 + +sys/resource.h + + +Node20->Node23 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/8-DbFiller_8cxx__incl_org.svg b/8-DbFiller_8cxx__incl_org.svg new file mode 100644 index 000000000..4a43451aa --- /dev/null +++ b/8-DbFiller_8cxx__incl_org.svg @@ -0,0 +1,360 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/examples/8-DbFiller.cxx + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/examples/8-DbFiller.cxx + + +Node2 + + +Monitoring/MonitoringFactory.h + + + + +Node1->Node2 + + + + +Node24 + +boost/program_options.hpp + + +Node1->Node24 + + + + +Node25 + +random + + +Node1->Node25 + + + + +Node3 + + +Monitoring/Monitoring.h + + + + +Node2->Node3 + + + + +Node4 + +atomic + + +Node3->Node4 + + + + +Node5 + +chrono + + +Node3->Node5 + + + + +Node6 + +map + + +Node3->Node6 + + + + +Node7 + +memory + + +Node3->Node7 + + + + +Node8 + +string + + +Node3->Node8 + + + + +Node9 + +thread + + +Node3->Node9 + + + + +Node10 + +tuple + + +Node3->Node10 + + + + +Node11 + +unordered_map + + +Node3->Node11 + + + + +Node12 + +vector + + +Node3->Node12 + + + + +Node13 + +deque + + +Node3->Node13 + + + + +Node14 + + +Monitoring/Backend.h + + + + +Node3->Node14 + + + + +Node19 + + +Monitoring/DerivedMetrics.h + + + + +Node3->Node19 + + + + +Node20 + + +Monitoring/ProcessMonitor.h + + + + +Node3->Node20 + + + + +Node14->Node5 + + + + +Node14->Node8 + + + + +Node15 + + +Monitoring/Metric.h + + + + +Node14->Node15 + + + + +Node15->Node5 + + + + +Node15->Node6 + + + + +Node15->Node8 + + + + +Node15->Node12 + + + + +Node16 + +regex + + +Node15->Node16 + + + + +Node17 + +variant + + +Node15->Node17 + + + + +Node18 + + +Tags.h + + + + +Node15->Node18 + + + + +Node18->Node8 + + + + +Node19->Node7 + + + + +Node19->Node8 + + + + +Node19->Node11 + + + + +Node19->Node12 + + + + +Node19->Node15 + + + + +Node20->Node4 + + + + +Node20->Node8 + + + + +Node20->Node12 + + + + +Node20->Node15 + + + + +Node21 + +boost/algorithm/string.hpp + + +Node20->Node21 + + + + +Node22 + +iostream + + +Node20->Node22 + + + + +Node23 + +sys/resource.h + + +Node20->Node23 + + + + + diff --git a/ApMonBackend_8cxx.html b/ApMonBackend_8cxx.html new file mode 100644 index 000000000..2bc7e6944 --- /dev/null +++ b/ApMonBackend_8cxx.html @@ -0,0 +1,165 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/Backends/ApMonBackend.cxx File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
ApMonBackend.cxx File Reference
+
+
+
#include "ApMonBackend.h"
+#include <iostream>
+#include <sstream>
+#include "../MonLogger.h"
+#include "../Exceptions/MonitoringException.h"
+
+Include dependency graph for ApMonBackend.cxx:
+
+
+
+
+
+ + + +

+Classes

struct  o2::monitoring::backends::overloaded< Ts >
 
+ + + + + + + +

+Namespaces

 o2::monitoring
 ALICE O2 Monitoring system.
 
 o2::monitoring::backends
 Monitoring backends.
 
+ + + + +

+Functions

+template<class... Ts>
 o2::monitoring::backends::overloaded (Ts...) -> overloaded< Ts... >
 
+

Detailed Description

+
+
+ + + + diff --git a/ApMonBackend_8cxx.js b/ApMonBackend_8cxx.js new file mode 100644 index 000000000..c5c943f39 --- /dev/null +++ b/ApMonBackend_8cxx.js @@ -0,0 +1,5 @@ +var ApMonBackend_8cxx = +[ + [ "overloaded", "structo2_1_1monitoring_1_1backends_1_1overloaded.html", null ], + [ "overloaded", "ApMonBackend_8cxx.html#a50daacbe666fad58e0e3761deef1173f", null ] +]; \ No newline at end of file diff --git a/ApMonBackend_8cxx__incl.dot b/ApMonBackend_8cxx__incl.dot new file mode 100644 index 000000000..d92166632 --- /dev/null +++ b/ApMonBackend_8cxx__incl.dot @@ -0,0 +1,52 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/src/Backends/ApMonBackend.cxx" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Backends/ApMonBackend.cxx",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="ApMonBackend.h",height=0.2,width=0.4,color="black",URL="$ApMonBackend_8h.html"]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="Monitoring/Backend.h",height=0.2,width=0.4,color="black",URL="$Backend_8h.html"]; + Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="chrono",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="string",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="Monitoring/Metric.h",height=0.2,width=0.4,color="black",URL="$Metric_8h.html"]; + Node6 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="map",height=0.2,width=0.4,color="grey75"]; + Node6 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="regex",height=0.2,width=0.4,color="grey75"]; + Node6 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="variant",height=0.2,width=0.4,color="grey75"]; + Node6 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="vector",height=0.2,width=0.4,color="grey75"]; + Node6 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="Tags.h",height=0.2,width=0.4,color="black",URL="$Tags_8h.html"]; + Node11 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="ApMon.h",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [label="memory",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 [label="iostream",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 [label="sstream",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node16 [label="../MonLogger.h",height=0.2,width=0.4,color="black",URL="$MonLogger_8h.html"]; + Node16 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node16 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node17 [label="iomanip",height=0.2,width=0.4,color="grey75"]; + Node16 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node18 [label="../Exceptions/Monitoring\lException.h",height=0.2,width=0.4,color="black",URL="$MonitoringException_8h.html"]; + Node18 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 [label="exception",height=0.2,width=0.4,color="grey75"]; + Node18 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/ApMonBackend_8cxx__incl.map b/ApMonBackend_8cxx__incl.map new file mode 100644 index 000000000..3de178212 --- /dev/null +++ b/ApMonBackend_8cxx__incl.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/ApMonBackend_8cxx__incl.md5 b/ApMonBackend_8cxx__incl.md5 new file mode 100644 index 000000000..f25b4f9d3 --- /dev/null +++ b/ApMonBackend_8cxx__incl.md5 @@ -0,0 +1 @@ +59d15b0b54d7684aaf9cbba604891a2b \ No newline at end of file diff --git a/ApMonBackend_8cxx__incl.svg b/ApMonBackend_8cxx__incl.svg new file mode 100644 index 000000000..5236fa5c6 --- /dev/null +++ b/ApMonBackend_8cxx__incl.svg @@ -0,0 +1,346 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Backends/ApMonBackend.cxx + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/ApMonBackend.cxx + + +Node2 + + +ApMonBackend.h + + + + +Node1->Node2 + + + + +Node14 + +iostream + + +Node1->Node14 + + + + +Node15 + +sstream + + +Node1->Node15 + + + + +Node16 + + +../MonLogger.h + + + + +Node1->Node16 + + + + +Node18 + + +../Exceptions/Monitoring +Exception.h + + + + +Node1->Node18 + + + + +Node3 + + +Monitoring/Backend.h + + + + +Node2->Node3 + + + + +Node4 + +chrono + + +Node2->Node4 + + + + +Node5 + +string + + +Node2->Node5 + + + + +Node12 + +ApMon.h + + +Node2->Node12 + + + + +Node13 + +memory + + +Node2->Node13 + + + + +Node3->Node4 + + + + +Node3->Node5 + + + + +Node6 + + +Monitoring/Metric.h + + + + +Node3->Node6 + + + + +Node6->Node4 + + + + +Node6->Node5 + + + + +Node7 + +map + + +Node6->Node7 + + + + +Node8 + +regex + + +Node6->Node8 + + + + +Node9 + +variant + + +Node6->Node9 + + + + +Node10 + +vector + + +Node6->Node10 + + + + +Node11 + + +Tags.h + + + + +Node6->Node11 + + + + +Node11->Node5 + + + + +Node16->Node4 + + + + +Node16->Node14 + + + + +Node17 + +iomanip + + +Node16->Node17 + + + + +Node18->Node5 + + + + +Node19 + +exception + + +Node18->Node19 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ApMonBackend_8cxx__incl_org.svg b/ApMonBackend_8cxx__incl_org.svg new file mode 100644 index 000000000..36487373d --- /dev/null +++ b/ApMonBackend_8cxx__incl_org.svg @@ -0,0 +1,258 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Backends/ApMonBackend.cxx + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/ApMonBackend.cxx + + +Node2 + + +ApMonBackend.h + + + + +Node1->Node2 + + + + +Node14 + +iostream + + +Node1->Node14 + + + + +Node15 + +sstream + + +Node1->Node15 + + + + +Node16 + + +../MonLogger.h + + + + +Node1->Node16 + + + + +Node18 + + +../Exceptions/Monitoring +Exception.h + + + + +Node1->Node18 + + + + +Node3 + + +Monitoring/Backend.h + + + + +Node2->Node3 + + + + +Node4 + +chrono + + +Node2->Node4 + + + + +Node5 + +string + + +Node2->Node5 + + + + +Node12 + +ApMon.h + + +Node2->Node12 + + + + +Node13 + +memory + + +Node2->Node13 + + + + +Node3->Node4 + + + + +Node3->Node5 + + + + +Node6 + + +Monitoring/Metric.h + + + + +Node3->Node6 + + + + +Node6->Node4 + + + + +Node6->Node5 + + + + +Node7 + +map + + +Node6->Node7 + + + + +Node8 + +regex + + +Node6->Node8 + + + + +Node9 + +variant + + +Node6->Node9 + + + + +Node10 + +vector + + +Node6->Node10 + + + + +Node11 + + +Tags.h + + + + +Node6->Node11 + + + + +Node11->Node5 + + + + +Node16->Node4 + + + + +Node16->Node14 + + + + +Node17 + +iomanip + + +Node16->Node17 + + + + +Node18->Node5 + + + + +Node19 + +exception + + +Node18->Node19 + + + + + diff --git a/ApMonBackend_8h.html b/ApMonBackend_8h.html new file mode 100644 index 000000000..5f80934d3 --- /dev/null +++ b/ApMonBackend_8h.html @@ -0,0 +1,166 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/Backends/ApMonBackend.h File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
ApMonBackend.h File Reference
+
+
+
#include "Monitoring/Backend.h"
+#include <ApMon.h>
+#include <string>
+#include <chrono>
+#include <memory>
+
+Include dependency graph for ApMonBackend.h:
+
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  o2::monitoring::backends::ApMonBackend
 Backend that uses AppMon (MonALISA) More...
 
+ + + + + + + +

+Namespaces

 o2::monitoring
 ALICE O2 Monitoring system.
 
 o2::monitoring::backends
 Monitoring backends.
 
+

Detailed Description

+
+
+ + + + diff --git a/ApMonBackend_8h__dep__incl.dot b/ApMonBackend_8h__dep__incl.dot new file mode 100644 index 000000000..dc7d9b6ce --- /dev/null +++ b/ApMonBackend_8h__dep__incl.dot @@ -0,0 +1,10 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/src/Backends/ApMonBackend.h" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Backends/ApMonBackend.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Backends/ApMonBackend.cxx",height=0.2,width=0.4,color="black",URL="$ApMonBackend_8cxx.html"]; +} diff --git a/ApMonBackend_8h__dep__incl.map b/ApMonBackend_8h__dep__incl.map new file mode 100644 index 000000000..4b4250125 --- /dev/null +++ b/ApMonBackend_8h__dep__incl.map @@ -0,0 +1,3 @@ + + + diff --git a/ApMonBackend_8h__dep__incl.md5 b/ApMonBackend_8h__dep__incl.md5 new file mode 100644 index 000000000..3efc98ffb --- /dev/null +++ b/ApMonBackend_8h__dep__incl.md5 @@ -0,0 +1 @@ +1d9a02792c8f55b3f6932bd4121dba37 \ No newline at end of file diff --git a/ApMonBackend_8h__dep__incl.svg b/ApMonBackend_8h__dep__incl.svg new file mode 100644 index 000000000..ca910536a --- /dev/null +++ b/ApMonBackend_8h__dep__incl.svg @@ -0,0 +1,34 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Backends/ApMonBackend.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/ApMonBackend.h + + +Node2 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/ApMonBackend.cxx + + + + +Node1->Node2 + + + + + diff --git a/ApMonBackend_8h__incl.dot b/ApMonBackend_8h__incl.dot new file mode 100644 index 000000000..eec183c1f --- /dev/null +++ b/ApMonBackend_8h__incl.dot @@ -0,0 +1,35 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/src/Backends/ApMonBackend.h" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Backends/ApMonBackend.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="Monitoring/Backend.h",height=0.2,width=0.4,color="black",URL="$Backend_8h.html"]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="chrono",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="string",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="Monitoring/Metric.h",height=0.2,width=0.4,color="black",URL="$Metric_8h.html"]; + Node5 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="map",height=0.2,width=0.4,color="grey75"]; + Node5 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="regex",height=0.2,width=0.4,color="grey75"]; + Node5 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="variant",height=0.2,width=0.4,color="grey75"]; + Node5 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="vector",height=0.2,width=0.4,color="grey75"]; + Node5 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="Tags.h",height=0.2,width=0.4,color="black",URL="$Tags_8h.html"]; + Node10 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="ApMon.h",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="memory",height=0.2,width=0.4,color="grey75"]; +} diff --git a/ApMonBackend_8h__incl.map b/ApMonBackend_8h__incl.map new file mode 100644 index 000000000..2863c05d4 --- /dev/null +++ b/ApMonBackend_8h__incl.map @@ -0,0 +1,5 @@ + + + + + diff --git a/ApMonBackend_8h__incl.md5 b/ApMonBackend_8h__incl.md5 new file mode 100644 index 000000000..7a2122920 --- /dev/null +++ b/ApMonBackend_8h__incl.md5 @@ -0,0 +1 @@ +affededa98d7eedc3eac8b7faea8b3bb \ No newline at end of file diff --git a/ApMonBackend_8h__incl.svg b/ApMonBackend_8h__incl.svg new file mode 100644 index 000000000..015c580a3 --- /dev/null +++ b/ApMonBackend_8h__incl.svg @@ -0,0 +1,251 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Backends/ApMonBackend.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/ApMonBackend.h + + +Node2 + + +Monitoring/Backend.h + + + + +Node1->Node2 + + + + +Node3 + +chrono + + +Node1->Node3 + + + + +Node4 + +string + + +Node1->Node4 + + + + +Node11 + +ApMon.h + + +Node1->Node11 + + + + +Node12 + +memory + + +Node1->Node12 + + + + +Node2->Node3 + + + + +Node2->Node4 + + + + +Node5 + + +Monitoring/Metric.h + + + + +Node2->Node5 + + + + +Node5->Node3 + + + + +Node5->Node4 + + + + +Node6 + +map + + +Node5->Node6 + + + + +Node7 + +regex + + +Node5->Node7 + + + + +Node8 + +variant + + +Node5->Node8 + + + + +Node9 + +vector + + +Node5->Node9 + + + + +Node10 + + +Tags.h + + + + +Node5->Node10 + + + + +Node10->Node4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ApMonBackend_8h__incl_org.svg b/ApMonBackend_8h__incl_org.svg new file mode 100644 index 000000000..ea2c9b61c --- /dev/null +++ b/ApMonBackend_8h__incl_org.svg @@ -0,0 +1,163 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Backends/ApMonBackend.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/ApMonBackend.h + + +Node2 + + +Monitoring/Backend.h + + + + +Node1->Node2 + + + + +Node3 + +chrono + + +Node1->Node3 + + + + +Node4 + +string + + +Node1->Node4 + + + + +Node11 + +ApMon.h + + +Node1->Node11 + + + + +Node12 + +memory + + +Node1->Node12 + + + + +Node2->Node3 + + + + +Node2->Node4 + + + + +Node5 + + +Monitoring/Metric.h + + + + +Node2->Node5 + + + + +Node5->Node3 + + + + +Node5->Node4 + + + + +Node6 + +map + + +Node5->Node6 + + + + +Node7 + +regex + + +Node5->Node7 + + + + +Node8 + +variant + + +Node5->Node8 + + + + +Node9 + +vector + + +Node5->Node9 + + + + +Node10 + + +Tags.h + + + + +Node5->Node10 + + + + +Node10->Node4 + + + + + diff --git a/ApMonBackend_8h_source.html b/ApMonBackend_8h_source.html new file mode 100644 index 000000000..57b091384 --- /dev/null +++ b/ApMonBackend_8h_source.html @@ -0,0 +1,135 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/Backends/ApMonBackend.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
ApMonBackend.h
+
+
+Go to the documentation of this file.
1 // Copyright CERN and copyright holders of ALICE O2. This software is
2 // distributed under the terms of the GNU General Public License v3 (GPL
3 // Version 3), copied verbatim in the file "COPYING".
4 //
5 // See http://alice-o2.web.cern.ch/license for full licensing information.
6 //
7 // In applying this license CERN does not waive the privileges and immunities
8 // granted to it by virtue of its status as an Intergovernmental Organization
9 // or submit itself to any jurisdiction.
10 
15 
16 #ifndef ALICEO2_MONITORING_BACKENDS_APMONBACKEND_H
17 #define ALICEO2_MONITORING_BACKENDS_APMONBACKEND_H
18 
19 #include "Monitoring/Backend.h"
20 #include <ApMon.h>
21 #include <string>
22 #include <chrono>
23 #include <memory>
24 
25 namespace o2
26 {
28 namespace monitoring
29 {
31 namespace backends
32 {
33 
40 class ApMonBackend final : public Backend
41 {
42  public:
45  ApMonBackend(const std::string& path);
46 
48  ~ApMonBackend() = default;
49 
52  void send(std::vector<Metric>&& metrics) override;
53 
57  void send(const Metric& metric) override;
58 
62  void addGlobalTag(std::string_view name, std::string_view value) override;
63 
64  private:
68  int convertTimestamp(const std::chrono::time_point<std::chrono::system_clock>& timestamp);
69 
70  std::unique_ptr<ApMon> mApMon;
71  std::string mEntity;
72 };
73 
74 } // namespace backends
75 } // namespace monitoring
76 } // namespace o2
77 
78 #endif // ALICEO2_MONITORING_BACKENDS_APMONBACKEND_H
Backend that uses AppMon (MonALISA)
Definition: ApMonBackend.h:40
+
~ApMonBackend()=default
Default destructor.
+
Definition: Backend.h:23
+
Backend pure virtual interface.
Definition: Backend.h:33
+
Represents a metric including value, type of the value, name, timestamp and tags. ...
Definition: Metric.h:37
+
void send(std::vector< Metric > &&metrics) override
Definition: ApMonBackend.cxx:119
+
ApMonBackend(const std::string &path)
Definition: ApMonBackend.cxx:38
+ +
void addGlobalTag(std::string_view name, std::string_view value) override
Definition: ApMonBackend.cxx:53
+
+
+ + + + diff --git a/Backend_8h.html b/Backend_8h.html new file mode 100644 index 000000000..2d2569c96 --- /dev/null +++ b/Backend_8h.html @@ -0,0 +1,161 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/include/Monitoring/Backend.h File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Backend.h File Reference
+
+
+
#include <chrono>
+#include <string>
+#include "Monitoring/Metric.h"
+
+Include dependency graph for Backend.h:
+
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  o2::monitoring::Backend
 Backend pure virtual interface. More...
 
+ + + + +

+Namespaces

 o2::monitoring
 ALICE O2 Monitoring system.
 
+

Detailed Description

+
+
+ + + + diff --git a/Backend_8h__dep__incl.dot b/Backend_8h__dep__incl.dot new file mode 100644 index 000000000..0db856032 --- /dev/null +++ b/Backend_8h__dep__incl.dot @@ -0,0 +1,65 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/include/Monitoring/Backend.h" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/include/Monitoring/Backend.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/include/Monitoring/Monitoring.h",height=0.2,width=0.4,color="black",URL="$Monitoring_8h.html"]; + Node2 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/include/Monitoring/Monitoring\lFactory.h",height=0.2,width=0.4,color="black",URL="$MonitoringFactory_8h.html"]; + Node3 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/1-Basic.cxx",height=0.2,width=0.4,color="black",URL="$1-Basic_8cxx.html"]; + Node3 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/10-Buffering.cxx",height=0.2,width=0.4,color="black",URL="$10-Buffering_8cxx.html"]; + Node3 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/2-TaggedMetrics.cxx",height=0.2,width=0.4,color="black",URL="$2-TaggedMetrics_8cxx.html"]; + Node3 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/3-Verbosity.cxx",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/4-RateDerivedMetric.cxx",height=0.2,width=0.4,color="black",URL="$4-RateDerivedMetric_8cxx.html"]; + Node3 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/5-Benchmark.cxx",height=0.2,width=0.4,color="black",URL="$5-Benchmark_8cxx.html"]; + Node3 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/6-Increment.cxx",height=0.2,width=0.4,color="black",URL="$6-Increment_8cxx.html"]; + Node3 -> Node11 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/7-InternalBenchamrk.cxx",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node12 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/8-DbFiller.cxx",height=0.2,width=0.4,color="black",URL="$8-DbFiller_8cxx.html"]; + Node3 -> Node13 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/MonitoringFactory.cxx",height=0.2,width=0.4,color="black",URL="$MonitoringFactory_8cxx.html"]; + Node3 -> Node14 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testApMon.cxx",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node15 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testInfluxDb.cxx",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node16 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node16 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testMonitoring.cxx",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node17 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node17 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testMonitoringFactory.cxx",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node18 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node18 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testProcessMonitor.cxx",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node19 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testThreads.cxx",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node20 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Monitoring.cxx",height=0.2,width=0.4,color="black",URL="$Monitoring_8cxx.html"]; + Node1 -> Node21 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node21 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Backends/ApMonBackend.h",height=0.2,width=0.4,color="black",URL="$ApMonBackend_8h.html"]; + Node21 -> Node22 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node22 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Backends/ApMonBackend.cxx",height=0.2,width=0.4,color="black",URL="$ApMonBackend_8cxx.html"]; + Node1 -> Node23 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node23 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Backends/InfluxDB.h",height=0.2,width=0.4,color="black",URL="$InfluxDB_8h.html"]; + Node23 -> Node24 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node24 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Backends/InfluxDB.cxx",height=0.2,width=0.4,color="black",URL="$InfluxDB_8cxx.html"]; + Node23 -> Node13 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node25 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node25 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Backends/Noop.h",height=0.2,width=0.4,color="black",URL="$Noop_8h.html"]; + Node25 -> Node13 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node25 -> Node26 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node26 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testNoop.cxx",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node27 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node27 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Backends/StdOut.h",height=0.2,width=0.4,color="black",URL="$Backends_2StdOut_8h_source.html"]; + Node27 -> Node28 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node28 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Backends/StdOut.cxx",height=0.2,width=0.4,color="grey75"]; + Node27 -> Node13 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/Backend_8h__dep__incl.map b/Backend_8h__dep__incl.map new file mode 100644 index 000000000..2a79fcfc6 --- /dev/null +++ b/Backend_8h__dep__incl.map @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/Backend_8h__dep__incl.md5 b/Backend_8h__dep__incl.md5 new file mode 100644 index 000000000..3c67a89c9 --- /dev/null +++ b/Backend_8h__dep__incl.md5 @@ -0,0 +1 @@ +507efff1fd54f0c06e8cce0d8011d1cc \ No newline at end of file diff --git a/Backend_8h__dep__incl.svg b/Backend_8h__dep__incl.svg new file mode 100644 index 000000000..a6e60e9f6 --- /dev/null +++ b/Backend_8h__dep__incl.svg @@ -0,0 +1,498 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/home/travis/build/AliceO2Group/Monitoring/include/Monitoring/Backend.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Backend.h + + +Node2 + + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Monitoring.h + + + + +Node1->Node2 + + + + +Node21 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/ApMonBackend.h + + + + +Node1->Node21 + + + + +Node23 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/InfluxDB.h + + + + +Node1->Node23 + + + + +Node25 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/Noop.h + + + + +Node1->Node25 + + + + +Node27 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/StdOut.h + + + + +Node1->Node27 + + + + +Node3 + + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Monitoring +Factory.h + + + + +Node2->Node3 + + + + +Node20 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Monitoring.cxx + + + + +Node2->Node20 + + + + +Node4 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/1-Basic.cxx + + + + +Node3->Node4 + + + + +Node5 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/10-Buffering.cxx + + + + +Node3->Node5 + + + + +Node6 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/2-TaggedMetrics.cxx + + + + +Node3->Node6 + + + + +Node7 + +/home/travis/build +/AliceO2Group/Monitoring +/examples/3-Verbosity.cxx + + +Node3->Node7 + + + + +Node8 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/4-RateDerivedMetric.cxx + + + + +Node3->Node8 + + + + +Node9 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/5-Benchmark.cxx + + + + +Node3->Node9 + + + + +Node10 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/6-Increment.cxx + + + + +Node3->Node10 + + + + +Node11 + +/home/travis/build +/AliceO2Group/Monitoring +/examples/7-InternalBenchamrk.cxx + + +Node3->Node11 + + + + +Node12 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/8-DbFiller.cxx + + + + +Node3->Node12 + + + + +Node13 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/MonitoringFactory.cxx + + + + +Node3->Node13 + + + + +Node14 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testApMon.cxx + + +Node3->Node14 + + + + +Node15 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testInfluxDb.cxx + + +Node3->Node15 + + + + +Node16 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testMonitoring.cxx + + +Node3->Node16 + + + + +Node17 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testMonitoringFactory.cxx + + +Node3->Node17 + + + + +Node18 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testProcessMonitor.cxx + + +Node3->Node18 + + + + +Node19 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testThreads.cxx + + +Node3->Node19 + + + + +Node22 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/ApMonBackend.cxx + + + + +Node21->Node22 + + + + +Node23->Node13 + + + + +Node24 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/InfluxDB.cxx + + + + +Node23->Node24 + + + + +Node25->Node13 + + + + +Node26 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testNoop.cxx + + +Node25->Node26 + + + + +Node27->Node13 + + + + +Node28 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/StdOut.cxx + + +Node27->Node28 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Backend_8h__dep__incl_org.svg b/Backend_8h__dep__incl_org.svg new file mode 100644 index 000000000..705ac87c5 --- /dev/null +++ b/Backend_8h__dep__incl_org.svg @@ -0,0 +1,410 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/include/Monitoring/Backend.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Backend.h + + +Node2 + + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Monitoring.h + + + + +Node1->Node2 + + + + +Node21 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/ApMonBackend.h + + + + +Node1->Node21 + + + + +Node23 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/InfluxDB.h + + + + +Node1->Node23 + + + + +Node25 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/Noop.h + + + + +Node1->Node25 + + + + +Node27 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/StdOut.h + + + + +Node1->Node27 + + + + +Node3 + + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Monitoring +Factory.h + + + + +Node2->Node3 + + + + +Node20 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Monitoring.cxx + + + + +Node2->Node20 + + + + +Node4 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/1-Basic.cxx + + + + +Node3->Node4 + + + + +Node5 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/10-Buffering.cxx + + + + +Node3->Node5 + + + + +Node6 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/2-TaggedMetrics.cxx + + + + +Node3->Node6 + + + + +Node7 + +/home/travis/build +/AliceO2Group/Monitoring +/examples/3-Verbosity.cxx + + +Node3->Node7 + + + + +Node8 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/4-RateDerivedMetric.cxx + + + + +Node3->Node8 + + + + +Node9 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/5-Benchmark.cxx + + + + +Node3->Node9 + + + + +Node10 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/6-Increment.cxx + + + + +Node3->Node10 + + + + +Node11 + +/home/travis/build +/AliceO2Group/Monitoring +/examples/7-InternalBenchamrk.cxx + + +Node3->Node11 + + + + +Node12 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/8-DbFiller.cxx + + + + +Node3->Node12 + + + + +Node13 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/MonitoringFactory.cxx + + + + +Node3->Node13 + + + + +Node14 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testApMon.cxx + + +Node3->Node14 + + + + +Node15 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testInfluxDb.cxx + + +Node3->Node15 + + + + +Node16 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testMonitoring.cxx + + +Node3->Node16 + + + + +Node17 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testMonitoringFactory.cxx + + +Node3->Node17 + + + + +Node18 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testProcessMonitor.cxx + + +Node3->Node18 + + + + +Node19 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testThreads.cxx + + +Node3->Node19 + + + + +Node22 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/ApMonBackend.cxx + + + + +Node21->Node22 + + + + +Node23->Node13 + + + + +Node24 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/InfluxDB.cxx + + + + +Node23->Node24 + + + + +Node25->Node13 + + + + +Node26 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testNoop.cxx + + +Node25->Node26 + + + + +Node27->Node13 + + + + +Node28 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/StdOut.cxx + + +Node27->Node28 + + + + + diff --git a/Backend_8h__incl.dot b/Backend_8h__incl.dot new file mode 100644 index 000000000..e61498423 --- /dev/null +++ b/Backend_8h__incl.dot @@ -0,0 +1,27 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/include/Monitoring/Backend.h" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/include/Monitoring/Backend.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="chrono",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="string",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="Monitoring/Metric.h",height=0.2,width=0.4,color="black",URL="$Metric_8h.html"]; + Node4 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="map",height=0.2,width=0.4,color="grey75"]; + Node4 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="regex",height=0.2,width=0.4,color="grey75"]; + Node4 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="variant",height=0.2,width=0.4,color="grey75"]; + Node4 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="vector",height=0.2,width=0.4,color="grey75"]; + Node4 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="Tags.h",height=0.2,width=0.4,color="black",URL="$Tags_8h.html"]; + Node9 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/Backend_8h__incl.map b/Backend_8h__incl.map new file mode 100644 index 000000000..5b3bbb68d --- /dev/null +++ b/Backend_8h__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/Backend_8h__incl.md5 b/Backend_8h__incl.md5 new file mode 100644 index 000000000..a41eccdf4 --- /dev/null +++ b/Backend_8h__incl.md5 @@ -0,0 +1 @@ +20512a2dbc860a6c4eb4a4e6517ddec6 \ No newline at end of file diff --git a/Backend_8h__incl.svg b/Backend_8h__incl.svg new file mode 100644 index 000000000..a059d9261 --- /dev/null +++ b/Backend_8h__incl.svg @@ -0,0 +1,120 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/include/Monitoring/Backend.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Backend.h + + +Node2 + +chrono + + +Node1->Node2 + + + + +Node3 + +string + + +Node1->Node3 + + + + +Node4 + + +Monitoring/Metric.h + + + + +Node1->Node4 + + + + +Node4->Node2 + + + + +Node4->Node3 + + + + +Node5 + +map + + +Node4->Node5 + + + + +Node6 + +regex + + +Node4->Node6 + + + + +Node7 + +variant + + +Node4->Node7 + + + + +Node8 + +vector + + +Node4->Node8 + + + + +Node9 + + +Tags.h + + + + +Node4->Node9 + + + + +Node9->Node3 + + + + + diff --git a/Backend_8h_source.html b/Backend_8h_source.html new file mode 100644 index 000000000..c9be0187f --- /dev/null +++ b/Backend_8h_source.html @@ -0,0 +1,137 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/include/Monitoring/Backend.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Backend.h
+
+
+Go to the documentation of this file.
1 // Copyright CERN and copyright holders of ALICE O2. This software is
2 // distributed under the terms of the GNU General Public License v3 (GPL
3 // Version 3), copied verbatim in the file "COPYING".
4 //
5 // See http://alice-o2.web.cern.ch/license for full licensing information.
6 //
7 // In applying this license CERN does not waive the privileges and immunities
8 // granted to it by virtue of its status as an Intergovernmental Organization
9 // or submit itself to any jurisdiction.
10 
15 
16 #ifndef ALICEO2_MONITORING_CORE_BACKEND_H
17 #define ALICEO2_MONITORING_CORE_BACKEND_H
18 
19 #include <chrono>
20 #include <string>
21 #include "Monitoring/Metric.h"
22 
23 namespace o2
24 {
26 namespace monitoring
27 {
28 
33 class Backend
34 {
35  private:
37  Verbosity verbosityLevel;
38 
39  public:
41  Backend() { verbosityLevel = Verbosity::Info; }
42 
44  virtual ~Backend() = default;
45 
47  void setVerbosisty(Verbosity level) { verbosityLevel = level; }
48 
50  Verbosity getVerbosity() { return verbosityLevel; }
51 
53  virtual void send(const Metric& metric) = 0;
54 
56  virtual void send(std::vector<Metric>&& metrics) = 0;
57 
59  virtual void addGlobalTag(std::string_view name, std::string_view value) = 0;
60 };
61 
62 } // namespace monitoring
63 } // namespace o2
64 
65 #endif // ALICEO2_MONITORING_CORE_BACKEND_H
Definition: Backend.h:23
+
virtual ~Backend()=default
Default destructor.
+
virtual void send(const Metric &metric)=0
Sends metric via backend.
+
virtual void addGlobalTag(std::string_view name, std::string_view value)=0
Sets a tag.
+
Verbosity
Metric and Backedn verbosity.
Definition: Metric.h:24
+
Backend pure virtual interface.
Definition: Backend.h:33
+
void setVerbosisty(Verbosity level)
Set verbosity level.
Definition: Backend.h:47
+
Represents a metric including value, type of the value, name, timestamp and tags. ...
Definition: Metric.h:37
+
Verbosity getVerbosity()
Get verbosity level.
Definition: Backend.h:50
+
Backend()
Default constructor.
Definition: Backend.h:41
+ +
+
+ + + + diff --git a/Backends_2StdOut_8h_source.html b/Backends_2StdOut_8h_source.html new file mode 100644 index 000000000..fb2b520b9 --- /dev/null +++ b/Backends_2StdOut_8h_source.html @@ -0,0 +1,135 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/Backends/StdOut.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
StdOut.h
+
+
+
1 // Copyright CERN and copyright holders of ALICE O2. This software is
2 // distributed under the terms of the GNU General Public License v3 (GPL
3 // Version 3), copied verbatim in the file "COPYING".
4 //
5 // See http://alice-o2.web.cern.ch/license for full licensing information.
6 //
7 // In applying this license CERN does not waive the privileges and immunities
8 // granted to it by virtue of its status as an Intergovernmental Organization
9 // or submit itself to any jurisdiction.
10 
15 
16 #ifndef ALICEO2_MONITORING_BACKEND_STDOUT_H
17 #define ALICEO2_MONITORING_BACKEND_STDOUT_H
18 
19 #include "Monitoring/Backend.h"
20 #include <string>
21 #include <sstream>
22 
23 namespace o2
24 {
26 namespace monitoring
27 {
29 namespace backends
30 {
31 
33 class StdOut final : public Backend
34 {
35  public:
37  StdOut(const std::string& prefix = "METRIC");
38 
40  ~StdOut() = default;
41 
44  void send(const Metric& metric) override;
45 
48  void send(std::vector<Metric>&& metrics) override;
49 
53  void addGlobalTag(std::string_view name, std::string_view value) override;
54 
55  private:
59  unsigned long convertTimestamp(const std::chrono::time_point<std::chrono::system_clock>& timestamp);
60 
61  std::string tagString;
62  const std::string mPrefix;
63 };
64 
65 } // namespace backends
66 } // namespace monitoring
67 } // namespace o2
68 
69 #endif // ALICEO2_MONITORING_BACKEND_STDOUT_H
Definition: Backend.h:23
+
~StdOut()=default
Default destructor.
+
Backend pure virtual interface.
Definition: Backend.h:33
+
void addGlobalTag(std::string_view name, std::string_view value) override
Definition: StdOut.cxx:49
+
Prints metrics to standard output via std::cout.
Definition: StdOut.h:33
+
Represents a metric including value, type of the value, name, timestamp and tags. ...
Definition: Metric.h:37
+
StdOut(const std::string &prefix="METRIC")
Default constructor.
Definition: StdOut.cxx:43
+
void send(const Metric &metric) override
Definition: StdOut.cxx:66
+ +
+
+ + + + diff --git a/CMakeLists.txt b/CMakeLists.txt deleted file mode 100644 index 902ee9e40..000000000 --- a/CMakeLists.txt +++ /dev/null @@ -1,476 +0,0 @@ -# Copyright 2019-2024 CERN and copyright holders of ALICE O2. -# See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -# All rights not expressly granted are reserved. -# -# This software is distributed under the terms of the GNU General Public -# License v3 (GPL Version 3), copied verbatim in the file "COPYING". -# -# In applying this license CERN does not waive the privileges and immunities -# granted to it by virtue of its status as an Intergovernmental Organization -# or submit itself to any jurisdiction. -# -# Author Adam Wegrzynek - - -#################################### -# General project definition -#################################### - -CMAKE_MINIMUM_REQUIRED(VERSION 3.26 FATAL_ERROR) -set(Boost_USE_STATIC_RUNTIME OFF) -set(Boost_USE_STATIC_LIBS OFF) -set(BUILD_SHARED_LIBS ON) -set(Boost_USE_MULTITHREADED ON) -set(O2_MONITORING_KAFKA_ENABLE ON) -set(O2_MONITORING_CONTROL_ENABLE ON) - -# Set cmake policy by version: https://cmake.org/cmake/help/latest/manual/cmake-policies.7.html -cmake_policy(VERSION 3.12) - -# Define project -project(Monitoring - VERSION 3.19.10 - DESCRIPTION "O2 Monitoring library" - LANGUAGES CXX -) - -# Documentation dir -add_subdirectory(doc) - -# simplified build mode for doc only -if(ONLYDOC) - return() -endif() - -# Add compiler flags for warnings and debug symbols -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -pedantic -Wextra -DBOOST_SYSTEM_NO_DEPRECATED -DBOOST_ERROR_CODE_HEADER_ONLY") - -# Set fPIC for all targets -set(CMAKE_POSITION_INDEPENDENT_CODE ON) - -# Set CMAKE_INSTALL_LIBDIR explicitly to lib (to avoid lib64 on CC7) -set(CMAKE_INSTALL_LIBDIR lib) - -# Set the default build type to "RelWithDebInfo" -if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) - set(CMAKE_BUILD_TYPE "RelWithDebInfo" - CACHE - STRING "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel Coverage." - FORCE - ) -endif() - -# Add coverage flags to Debug build -if(CMAKE_BUILD_TYPE STREQUAL "Debug") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0 --coverage") -endif() - -#################################### -# Dependencies -#################################### - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake") - -find_package(Boost 1.70 REQUIRED COMPONENTS unit_test_framework program_options) -find_package(ApMon MODULE) -find_package(CURL MODULE) -find_package(InfoLogger CONFIG) -if(O2_MONITORING_KAFKA_ENABLE OR O2_MONITORING_CONTROL_ENABLE) - find_package(Protobuf CONFIG) -endif() -if(O2_MONITORING_CONTROL_ENABLE) - find_package(gRPC CONFIG) -endif() - -if(RDKAFKA_ROOT) - message("RDKAFKA_ROOT set, we enable corresponding libs and binaries") - find_library(RDKAFKA_LIB1 "rdkafka++" REQUIRED PATHS ${RDKAFKA_ROOT}/lib) - find_library(RDKAFKA_LIB2 "rdkafka" REQUIRED PATHS ${RDKAFKA_ROOT}/lib) - set(RDKAFKA_LIBS ${RDKAFKA_LIB1} ${RDKAFKA_LIB2}) - set(RDKAFKA_INCLUDE "${RDKAFKA_ROOT}/include") - set(RdKafka_FOUND true) -else() - message("RDKAFKA_ROOT not set, corresponding libs and binaries won't be built") -endif() - -if(gRPC_FOUND) - message("gRPC found, we enable corresponding libs and binaries") -else() - message("gRPC not found, corresponding libs and binaries won't be built") -endif() - - -#################################### -# Set OUTPUT vars -#################################### - -set(LIBRARY_OUTPUT_PATH "${CMAKE_BINARY_DIR}/lib") -set(EXECUTABLE_OUTPUT_PATH "${CMAKE_BINARY_DIR}/bin") -set(INCLUDE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/include") - -#################################### -# Handle RPATH -#################################### -include(GNUInstallDirs) - -# Use relative RPATHs -set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) -list(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}" isSystemDir) -if("${isSystemDir}" STREQUAL "-1") - if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") - set(CMAKE_INSTALL_RPATH "@loader_path/../${CMAKE_INSTALL_LIBDIR}") - endif() - if(CMAKE_SYSTEM_NAME STREQUAL "Linux") - set(CMAKE_INSTALL_RPATH "$ORIGIN/../${CMAKE_INSTALL_LIBDIR}") - endif() -endif() -unset(isSystemDir) - -#################################### -# Library -#################################### - -# Backends -message(STATUS "Backends") -message(STATUS " Compiling StdCout backend") -message(STATUS " Compiling InfluxDB backend with Unix socket and UDP transport") - -# Create library -add_library(Monitoring SHARED - src/Monitoring.cxx - src/Metric.cxx - src/Backends/InfluxDB.cxx - src/Backends/StdOut.cxx - src/DerivedMetrics.cxx - src/ProcessMonitor.cxx - src/ProcessDetails.cxx - src/MonitoringFactory.cxx - src/Transports/UDP.cxx - src/Transports/TCP.cxx - src/Transports/Unix.cxx - src/Transports/StdOut.cxx - src/Transports/WebSocket.cxx - src/Exceptions/MonitoringException.cxx - $<$:src/Backends/ApMonBackend.cxx> - $<$:src/Transports/KafkaProducer.cxx> - $<$:src/Transports/KafkaConsumer.cxx> - $<$:src/Transports/HTTP.cxx> -) - -target_include_directories(Monitoring - PUBLIC - $ - $ - $ - PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR}/src -) - -# Rename library -set_target_properties(Monitoring PROPERTIES OUTPUT_NAME "O2Monitoring") - -# Link targets -target_link_libraries(Monitoring - PUBLIC - Boost::boost - PRIVATE - pthread - $<$:ApMon::ApMon> - $<$:CURL::libcurl> - $<$:AliceO2::InfoLogger> - $<$:${RDKAFKA_LIBS}> -) - -# Handle ApMon optional dependency -if(ApMon_FOUND) - message(STATUS " Compiling ApMon backend") -endif() - -if(RdKafka_FOUND) - message(STATUS " Compiling Kafka transport") -endif() - -if(CURL_FOUND) - message(STATUS " Compiling HTTP transport/InfluxDB 2.x backend") -endif() - -# Detect operating system -if (UNIX AND NOT APPLE) - message(STATUS "Detected Linux: Process monitor enabled") - set(LINUX true) - # Detecto CC7 or CS8 - if(EXISTS "/etc/os-release") - file(STRINGS "/etc/os-release" OS_RELEASE) - foreach(KV ${OS_RELEASE}) - if(KV MATCHES "^VERSION=\"8\"") - set(CS8 true) - message(STATUS " Detected CS8") - endif() - if(KV MATCHES "^VERSION=\"7") - set(CC7 true) - message(STATUS " Detected CC7") - endif() - endforeach() - endif() -endif() - -if (APPLE) - message(STATUS "Detected macOS: Process monitor disabled") -endif() - -if(Protobuf_FOUND AND RdKafka_FOUND) - message(STATUS "Compiling Kafka consumer with protobuf deserializer") -endif() - -# Handle custom compile definitions -target_compile_definitions(Monitoring - PRIVATE - $<$:O2_MONITORING_OS_MAC> - $<$:O2_MONITORING_OS_LINUX> - $<$:O2_MONITORING_OS_CC7> - $<$:O2_MONITORING_OS_CS8> - $<$:O2_MONITORING_WITH_APPMON> - $<$:O2_MONITORING_WITH_KAFKA> - $<$:O2_MONITORING_WITH_CURL> - $<$:O2_MONITORING_WITH_INFOLOGGER> - ) - -# Use C++17 -target_compile_features(Monitoring PUBLIC cxx_std_17) - - -#################################### -# Executables -#################################### - -set(EXAMPLES - examples/1-Basic.cxx - examples/2-TaggedMetrics.cxx - examples/3-Verbosity.cxx - examples/4-RateDerivedMetric.cxx - examples/5-Benchmark.cxx - examples/6-Increment.cxx - examples/7-InternalBenchamrk.cxx - examples/9-RunNumber.cxx - examples/10-Buffering.cxx -) - -if(RdKafka_FOUND) - list(APPEND EXAMPLES "examples/11-KafkaToWebsocket.cxx") - list(APPEND EXAMPLES "examples/13-PullClient.cxx") -endif() - -foreach (example ${EXAMPLES}) - get_filename_component(example_name ${example} NAME) - string(REGEX REPLACE ".cxx" "" example_name ${example_name}) - add_executable(${example_name} ${example}) - target_link_libraries(${example_name} - PRIVATE - pthread - Monitoring Boost::program_options - $<$:CURL::libcurl> - $<$:${RDKAFKA_LIBS}> - ) -endforeach() - -set_target_properties(5-Benchmark PROPERTIES OUTPUT_NAME "o2-monitoring-benchmark") - -if(RdKafka_FOUND) - set_target_properties(11-KafkaToWebsocket PROPERTIES OUTPUT_NAME "o2-monitoring-kafka-to-grafana") -endif() - - -# executable: o2-monitoring-send -add_executable( - o2-monitoring-send - src/sendMetric.cxx -) -target_link_libraries( - o2-monitoring-send - Monitoring -) -install(TARGETS o2-monitoring-send) - -#################################### -# Generate protobuf -#################################### -if(RdKafka_FOUND AND Protobuf_FOUND AND CURL_FOUND) - set(PROTO_FILE ${CMAKE_CURRENT_SOURCE_DIR}/proto/envs.proto) - get_filename_component(PROTO_OUTPUT_NAME ${PROTO_FILE} NAME_WE) - get_filename_component(PROTO_FILE_PREFIX ${PROTO_FILE} PATH) - set(PROTO_CPP_OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${PROTO_OUTPUT_NAME}.pb.cc) - - add_custom_command( - OUTPUT "${PROTO_CPP_OUTPUT}" - COMMAND protobuf::protoc - ARGS --proto_path ${PROTO_FILE_PREFIX} --cpp_out ${CMAKE_CURRENT_BINARY_DIR} ${PROTO_FILE} - DEPENDS ${PROTO_FILE} - COMMENT "Running protoc on ${PROTO_FILE}" - VERBATIM) - - set(PROTO_EXAMPLES - examples/12-KafkaToInfluxDb.cxx - examples/14-OrbitId.cxx - examples/8-KafkaToHttpServer.cxx - ) - foreach (example ${PROTO_EXAMPLES}) - get_filename_component(example_name ${example} NAME) - string(REGEX REPLACE ".cxx" "" example_name ${example_name}) - add_executable(${example_name} ${example} ${PROTO_CPP_OUTPUT}) - target_link_libraries(${example_name} PRIVATE - Monitoring - Boost::program_options - protobuf::libprotobuf - $<$:AliceO2::InfoLogger> - $<$:${RDKAFKA_LIBS}> - ) - target_compile_definitions(${example_name} PRIVATE $<$:O2_MONITORING_WITH_INFOLOGGER>) - target_include_directories(${example_name} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) - install(TARGETS ${example_name}) - endforeach() - set_target_properties(8-KafkaToHttpServer PROPERTIES OUTPUT_NAME "o2-monitoring-env-webserver") - set_target_properties(12-KafkaToInfluxDb PROPERTIES OUTPUT_NAME "o2-monitoring-kafka-to-influxdb") - set_target_properties(14-OrbitId PROPERTIES OUTPUT_NAME "o2-monitoring-orbitid") -endif() - -#################################### -# gRPC -#################################### -if(Protobuf_FOUND AND gRPC_FOUND) - set(PROTO_FILES ${CMAKE_CURRENT_SOURCE_DIR}/proto/odc.proto ${CMAKE_CURRENT_SOURCE_DIR}/proto/o2control.proto) - set(EXAMPLES examples/15-ODC.cxx examples/16-AliECS.cxx) - foreach(PROTO_FILE example IN ZIP_LISTS PROTO_FILES EXAMPLES) - get_filename_component(PROTO_OUTPUT_NAME ${PROTO_FILE} NAME_WE) - get_filename_component(PROTO_FILE_PREFIX ${PROTO_FILE} PATH) - set(PROTO_CPP_OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${PROTO_OUTPUT_NAME}.pb.cc) - set(GRPC_CPP_OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${PROTO_OUTPUT_NAME}.grpc.pb.cc) - - add_custom_command( - OUTPUT "${PROTO_CPP_OUTPUT}" - COMMAND protobuf::protoc - ARGS --proto_path ${PROTO_FILE_PREFIX} - --cpp_out ${CMAKE_CURRENT_BINARY_DIR} - ${PROTO_OUTPUT_NAME}.proto - DEPENDS ${PROTO_FILE} - COMMENT "Running protoc on ${PROTO_FILE}" - VERBATIM) - - add_custom_command( - OUTPUT "${GRPC_CPP_OUTPUT}" - COMMAND protobuf::protoc - ARGS --proto_path ${PROTO_FILE_PREFIX} - --grpc_out=${CMAKE_CURRENT_BINARY_DIR} - --plugin=protoc-gen-grpc=$ - ${PROTO_OUTPUT_NAME}.proto - DEPENDS ${PROTO_FILE} - COMMENT "Running protoc/gRPC on ${PROTO_FILE}" - VERBATIM) - - get_filename_component(example_name ${example} NAME) - string(REGEX REPLACE ".cxx" "" example_name ${example_name}) - add_executable(${example_name} ${example} ${PROTO_CPP_OUTPUT} ${GRPC_CPP_OUTPUT}) - target_link_libraries(${example_name} PRIVATE - Monitoring - gRPC::grpc++ - protobuf::libprotobuf - Boost::program_options - ) - target_include_directories(${example_name} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) - endforeach() - set_target_properties(15-ODC PROPERTIES OUTPUT_NAME "o2-monitoring-odc") - set_target_properties(16-AliECS PROPERTIES OUTPUT_NAME "o2-monitoring-aliecs-tasks") -endif() - -#################################### -# Tests -#################################### - -enable_testing() - -set(TEST_SRCS - test/testMonitoringFactory.cxx - test/testDerived.cxx - test/testMetric.cxx - test/testProcessDetails.cxx - test/testProcessMonitor.cxx - test/testRegexMatch.cxx - test/testMonitoring.cxx - test/testVerbosity.cxx -) - -if(ApMon_FOUND) - configure_file(test/ApMon.conf ${CMAKE_CURRENT_BINARY_DIR}/ApMon.conf COPYONLY) -endif() - -foreach (test ${TEST_SRCS}) - get_filename_component(test_name ${test} NAME) - string(REGEX REPLACE ".cxx" "" test_name ${test_name}) - - add_executable(${test_name} ${test}) - target_link_libraries(${test_name} - PRIVATE - Monitoring Boost::unit_test_framework - ) - add_test(NAME ${test_name} COMMAND ${test_name}) - set_tests_properties(${test_name} PROPERTIES TIMEOUT 60) -endforeach() - - -#################################### -# Install -#################################### - -# Install library -install(TARGETS Monitoring 5-Benchmark - EXPORT MonitoringTargets - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} -) -if(RdKafka_FOUND) - install(TARGETS 11-KafkaToWebsocket) -endif() - - -if(RdKafka_FOUND AND Protobuf_FOUND) - install(TARGETS 14-OrbitId) -endif() - -if(Protobuf_FOUND AND gRPC_FOUND) - install(TARGETS 15-ODC) -endif() - -# Create version file -include(CMakePackageConfigHelpers) -write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/cmake/MonitoringConfigVersion.cmake" - VERSION ${PACKAGE_VERSION} - COMPATIBILITY AnyNewerVersion -) - -# Install headers -install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/Monitoring DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") - -# Export targets -install(EXPORT MonitoringTargets - FILE - MonitoringTargets.cmake - NAMESPACE - AliceO2:: - DESTINATION - ${CMAKE_INSTALL_LIBDIR}/cmake/Monitoring -) - -# Configure and install Config files -configure_package_config_file( - cmake/MonitoringConfig.cmake.in cmake/MonitoringConfig.cmake - INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/Monitoring" - PATH_VARS CMAKE_INSTALL_PREFIX -) - -install( - FILES - "${CMAKE_CURRENT_BINARY_DIR}/cmake/MonitoringConfig.cmake" - "${CMAKE_CURRENT_BINARY_DIR}/cmake/MonitoringConfigVersion.cmake" - DESTINATION - ${CMAKE_INSTALL_LIBDIR}/cmake/Monitoring -) diff --git a/COPYING b/COPYING deleted file mode 100644 index 9cecc1d46..000000000 --- a/COPYING +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - {one line to give the program's name and a brief idea of what it does.} - Copyright (C) {year} {name of author} - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - {project} Copyright (C) {year} {fullname} - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/DerivedMetrics_8cxx.html b/DerivedMetrics_8cxx.html new file mode 100644 index 000000000..2353a5132 --- /dev/null +++ b/DerivedMetrics_8cxx.html @@ -0,0 +1,167 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/DerivedMetrics.cxx File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
DerivedMetrics.cxx File Reference
+
+
+
#include "Monitoring/DerivedMetrics.h"
+#include "Exceptions/MonitoringException.h"
+#include <chrono>
+#include <iostream>
+#include <map>
+#include <memory>
+#include <string>
+#include <vector>
+#include "VariantVisitorAdd.h"
+#include "VariantVisitorRate.h"
+
+Include dependency graph for DerivedMetrics.cxx:
+
+
+
+
+
+ + + +

+Classes

struct  overloaded< Ts >
 
+ + + + +

+Namespaces

 o2::monitoring
 ALICE O2 Monitoring system.
 
+ + + + +

+Functions

+template<class... Ts>
 overloaded (Ts...) -> overloaded< Ts... >
 
+

Detailed Description

+
+
+ + + + diff --git a/DerivedMetrics_8cxx.js b/DerivedMetrics_8cxx.js new file mode 100644 index 000000000..b66a15da9 --- /dev/null +++ b/DerivedMetrics_8cxx.js @@ -0,0 +1,5 @@ +var DerivedMetrics_8cxx = +[ + [ "overloaded", "structoverloaded.html", null ], + [ "overloaded", "DerivedMetrics_8cxx.html#a0930706ccdcce4d25d36c7c80ecacb4f", null ] +]; \ No newline at end of file diff --git a/DerivedMetrics_8cxx__incl.dot b/DerivedMetrics_8cxx__incl.dot new file mode 100644 index 000000000..04bc951ea --- /dev/null +++ b/DerivedMetrics_8cxx__incl.dot @@ -0,0 +1,50 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/src/DerivedMetrics.cxx" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/DerivedMetrics.cxx",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="Monitoring/DerivedMetrics.h",height=0.2,width=0.4,color="black",URL="$DerivedMetrics_8h.html"]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="unordered_map",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="memory",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="string",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="vector",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="Monitoring/Metric.h",height=0.2,width=0.4,color="black",URL="$Metric_8h.html"]; + Node7 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="chrono",height=0.2,width=0.4,color="grey75"]; + Node7 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="map",height=0.2,width=0.4,color="grey75"]; + Node7 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="regex",height=0.2,width=0.4,color="grey75"]; + Node7 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="variant",height=0.2,width=0.4,color="grey75"]; + Node7 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="Tags.h",height=0.2,width=0.4,color="black",URL="$Tags_8h.html"]; + Node12 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [label="Exceptions/MonitoringException.h",height=0.2,width=0.4,color="black",URL="$MonitoringException_8h.html"]; + Node13 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 [label="exception",height=0.2,width=0.4,color="grey75"]; + Node13 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 [label="iostream",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node16 [label="VariantVisitorAdd.h",height=0.2,width=0.4,color="black",URL="$VariantVisitorAdd_8h_source.html"]; + Node16 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node17 [label="VariantVisitorRate.h",height=0.2,width=0.4,color="black",URL="$VariantVisitorRate_8h_source.html"]; +} diff --git a/DerivedMetrics_8cxx__incl.map b/DerivedMetrics_8cxx__incl.map new file mode 100644 index 000000000..e8d8d433f --- /dev/null +++ b/DerivedMetrics_8cxx__incl.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/DerivedMetrics_8cxx__incl.md5 b/DerivedMetrics_8cxx__incl.md5 new file mode 100644 index 000000000..0976f916d --- /dev/null +++ b/DerivedMetrics_8cxx__incl.md5 @@ -0,0 +1 @@ +5bc055bcbd5d1afb5985608eac46ca31 \ No newline at end of file diff --git a/DerivedMetrics_8cxx__incl.svg b/DerivedMetrics_8cxx__incl.svg new file mode 100644 index 000000000..a054e8d03 --- /dev/null +++ b/DerivedMetrics_8cxx__incl.svg @@ -0,0 +1,335 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/DerivedMetrics.cxx + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/DerivedMetrics.cxx + + +Node2 + + +Monitoring/DerivedMetrics.h + + + + +Node1->Node2 + + + + +Node4 + +memory + + +Node1->Node4 + + + + +Node5 + +string + + +Node1->Node5 + + + + +Node6 + +vector + + +Node1->Node6 + + + + +Node8 + +chrono + + +Node1->Node8 + + + + +Node9 + +map + + +Node1->Node9 + + + + +Node13 + + +Exceptions/MonitoringException.h + + + + +Node1->Node13 + + + + +Node15 + +iostream + + +Node1->Node15 + + + + +Node16 + + +VariantVisitorAdd.h + + + + +Node1->Node16 + + + + +Node17 + + +VariantVisitorRate.h + + + + +Node1->Node17 + + + + +Node3 + +unordered_map + + +Node2->Node3 + + + + +Node2->Node4 + + + + +Node2->Node5 + + + + +Node2->Node6 + + + + +Node7 + + +Monitoring/Metric.h + + + + +Node2->Node7 + + + + +Node7->Node5 + + + + +Node7->Node6 + + + + +Node7->Node8 + + + + +Node7->Node9 + + + + +Node10 + +regex + + +Node7->Node10 + + + + +Node11 + +variant + + +Node7->Node11 + + + + +Node12 + + +Tags.h + + + + +Node7->Node12 + + + + +Node12->Node5 + + + + +Node13->Node5 + + + + +Node14 + +exception + + +Node13->Node14 + + + + +Node16->Node11 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DerivedMetrics_8cxx__incl_org.svg b/DerivedMetrics_8cxx__incl_org.svg new file mode 100644 index 000000000..08c56f4ac --- /dev/null +++ b/DerivedMetrics_8cxx__incl_org.svg @@ -0,0 +1,247 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/DerivedMetrics.cxx + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/DerivedMetrics.cxx + + +Node2 + + +Monitoring/DerivedMetrics.h + + + + +Node1->Node2 + + + + +Node4 + +memory + + +Node1->Node4 + + + + +Node5 + +string + + +Node1->Node5 + + + + +Node6 + +vector + + +Node1->Node6 + + + + +Node8 + +chrono + + +Node1->Node8 + + + + +Node9 + +map + + +Node1->Node9 + + + + +Node13 + + +Exceptions/MonitoringException.h + + + + +Node1->Node13 + + + + +Node15 + +iostream + + +Node1->Node15 + + + + +Node16 + + +VariantVisitorAdd.h + + + + +Node1->Node16 + + + + +Node17 + + +VariantVisitorRate.h + + + + +Node1->Node17 + + + + +Node3 + +unordered_map + + +Node2->Node3 + + + + +Node2->Node4 + + + + +Node2->Node5 + + + + +Node2->Node6 + + + + +Node7 + + +Monitoring/Metric.h + + + + +Node2->Node7 + + + + +Node7->Node5 + + + + +Node7->Node6 + + + + +Node7->Node8 + + + + +Node7->Node9 + + + + +Node10 + +regex + + +Node7->Node10 + + + + +Node11 + +variant + + +Node7->Node11 + + + + +Node12 + + +Tags.h + + + + +Node7->Node12 + + + + +Node12->Node5 + + + + +Node13->Node5 + + + + +Node14 + +exception + + +Node13->Node14 + + + + +Node16->Node11 + + + + + diff --git a/DerivedMetrics_8h.html b/DerivedMetrics_8h.html new file mode 100644 index 000000000..90a76fe0e --- /dev/null +++ b/DerivedMetrics_8h.html @@ -0,0 +1,173 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/include/Monitoring/DerivedMetrics.h File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
DerivedMetrics.h File Reference
+
+
+
#include <unordered_map>
+#include <memory>
+#include <string>
+#include <vector>
+#include "Monitoring/Metric.h"
+
+Include dependency graph for DerivedMetrics.h:
+
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  o2::monitoring::DerivedMetrics
 Enables Calculation of derived metrics. More...
 
+ + + + +

+Namespaces

 o2::monitoring
 ALICE O2 Monitoring system.
 
+ + + + +

+Enumerations

enum  o2::monitoring::DerivedMetricMode { RATE, +INCREMENT, +NONE + }
 Available derived metric modes.
 
+

Detailed Description

+
+
+ + + + diff --git a/DerivedMetrics_8h.js b/DerivedMetrics_8h.js new file mode 100644 index 000000000..421d332c8 --- /dev/null +++ b/DerivedMetrics_8h.js @@ -0,0 +1,9 @@ +var DerivedMetrics_8h = +[ + [ "DerivedMetrics", "classo2_1_1monitoring_1_1DerivedMetrics.html", "classo2_1_1monitoring_1_1DerivedMetrics" ], + [ "DerivedMetricMode", "DerivedMetrics_8h.html#afdc1126ed1982b9a501fb36c63110ab2", [ + [ "RATE", "DerivedMetrics_8h.html#afdc1126ed1982b9a501fb36c63110ab2a79521cdea3eff83f517d31c49f9082f5", null ], + [ "INCREMENT", "DerivedMetrics_8h.html#afdc1126ed1982b9a501fb36c63110ab2a90cf1f5206b348a822cc1a453a587534", null ], + [ "NONE", "DerivedMetrics_8h.html#afdc1126ed1982b9a501fb36c63110ab2ab50339a10e1de285ac99d4c3990b8693", null ] + ] ] +]; \ No newline at end of file diff --git a/DerivedMetrics_8h__dep__incl.dot b/DerivedMetrics_8h__dep__incl.dot new file mode 100644 index 000000000..2c28485fb --- /dev/null +++ b/DerivedMetrics_8h__dep__incl.dot @@ -0,0 +1,50 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/include/Monitoring/DerivedMetrics.h" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/include/Monitoring/DerivedMetrics.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/include/Monitoring/Monitoring.h",height=0.2,width=0.4,color="black",URL="$Monitoring_8h.html"]; + Node2 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/include/Monitoring/Monitoring\lFactory.h",height=0.2,width=0.4,color="black",URL="$MonitoringFactory_8h.html"]; + Node3 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/1-Basic.cxx",height=0.2,width=0.4,color="black",URL="$1-Basic_8cxx.html"]; + Node3 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/10-Buffering.cxx",height=0.2,width=0.4,color="black",URL="$10-Buffering_8cxx.html"]; + Node3 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/2-TaggedMetrics.cxx",height=0.2,width=0.4,color="black",URL="$2-TaggedMetrics_8cxx.html"]; + Node3 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/3-Verbosity.cxx",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/4-RateDerivedMetric.cxx",height=0.2,width=0.4,color="black",URL="$4-RateDerivedMetric_8cxx.html"]; + Node3 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/5-Benchmark.cxx",height=0.2,width=0.4,color="black",URL="$5-Benchmark_8cxx.html"]; + Node3 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/6-Increment.cxx",height=0.2,width=0.4,color="black",URL="$6-Increment_8cxx.html"]; + Node3 -> Node11 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/7-InternalBenchamrk.cxx",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node12 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/8-DbFiller.cxx",height=0.2,width=0.4,color="black",URL="$8-DbFiller_8cxx.html"]; + Node3 -> Node13 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/MonitoringFactory.cxx",height=0.2,width=0.4,color="black",URL="$MonitoringFactory_8cxx.html"]; + Node3 -> Node14 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testApMon.cxx",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node15 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testInfluxDb.cxx",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node16 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node16 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testMonitoring.cxx",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node17 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node17 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testMonitoringFactory.cxx",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node18 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node18 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testProcessMonitor.cxx",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node19 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testThreads.cxx",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node20 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Monitoring.cxx",height=0.2,width=0.4,color="black",URL="$Monitoring_8cxx.html"]; + Node1 -> Node21 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node21 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/DerivedMetrics.cxx",height=0.2,width=0.4,color="black",URL="$DerivedMetrics_8cxx.html"]; + Node1 -> Node22 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node22 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testDerived.cxx",height=0.2,width=0.4,color="grey75"]; +} diff --git a/DerivedMetrics_8h__dep__incl.map b/DerivedMetrics_8h__dep__incl.map new file mode 100644 index 000000000..e8e83f4e8 --- /dev/null +++ b/DerivedMetrics_8h__dep__incl.map @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/DerivedMetrics_8h__dep__incl.md5 b/DerivedMetrics_8h__dep__incl.md5 new file mode 100644 index 000000000..bca546ad3 --- /dev/null +++ b/DerivedMetrics_8h__dep__incl.md5 @@ -0,0 +1 @@ +6bdac3017e1d4b1ca7964811d0241a89 \ No newline at end of file diff --git a/DerivedMetrics_8h__dep__incl.svg b/DerivedMetrics_8h__dep__incl.svg new file mode 100644 index 000000000..73458bede --- /dev/null +++ b/DerivedMetrics_8h__dep__incl.svg @@ -0,0 +1,396 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/home/travis/build/AliceO2Group/Monitoring/include/Monitoring/DerivedMetrics.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/DerivedMetrics.h + + +Node2 + + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Monitoring.h + + + + +Node1->Node2 + + + + +Node21 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/DerivedMetrics.cxx + + + + +Node1->Node21 + + + + +Node22 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testDerived.cxx + + +Node1->Node22 + + + + +Node3 + + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Monitoring +Factory.h + + + + +Node2->Node3 + + + + +Node20 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Monitoring.cxx + + + + +Node2->Node20 + + + + +Node4 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/1-Basic.cxx + + + + +Node3->Node4 + + + + +Node5 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/10-Buffering.cxx + + + + +Node3->Node5 + + + + +Node6 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/2-TaggedMetrics.cxx + + + + +Node3->Node6 + + + + +Node7 + +/home/travis/build +/AliceO2Group/Monitoring +/examples/3-Verbosity.cxx + + +Node3->Node7 + + + + +Node8 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/4-RateDerivedMetric.cxx + + + + +Node3->Node8 + + + + +Node9 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/5-Benchmark.cxx + + + + +Node3->Node9 + + + + +Node10 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/6-Increment.cxx + + + + +Node3->Node10 + + + + +Node11 + +/home/travis/build +/AliceO2Group/Monitoring +/examples/7-InternalBenchamrk.cxx + + +Node3->Node11 + + + + +Node12 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/8-DbFiller.cxx + + + + +Node3->Node12 + + + + +Node13 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/MonitoringFactory.cxx + + + + +Node3->Node13 + + + + +Node14 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testApMon.cxx + + +Node3->Node14 + + + + +Node15 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testInfluxDb.cxx + + +Node3->Node15 + + + + +Node16 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testMonitoring.cxx + + +Node3->Node16 + + + + +Node17 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testMonitoringFactory.cxx + + +Node3->Node17 + + + + +Node18 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testProcessMonitor.cxx + + +Node3->Node18 + + + + +Node19 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testThreads.cxx + + +Node3->Node19 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DerivedMetrics_8h__dep__incl_org.svg b/DerivedMetrics_8h__dep__incl_org.svg new file mode 100644 index 000000000..50c973c8a --- /dev/null +++ b/DerivedMetrics_8h__dep__incl_org.svg @@ -0,0 +1,308 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/include/Monitoring/DerivedMetrics.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/DerivedMetrics.h + + +Node2 + + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Monitoring.h + + + + +Node1->Node2 + + + + +Node21 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/DerivedMetrics.cxx + + + + +Node1->Node21 + + + + +Node22 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testDerived.cxx + + +Node1->Node22 + + + + +Node3 + + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Monitoring +Factory.h + + + + +Node2->Node3 + + + + +Node20 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Monitoring.cxx + + + + +Node2->Node20 + + + + +Node4 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/1-Basic.cxx + + + + +Node3->Node4 + + + + +Node5 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/10-Buffering.cxx + + + + +Node3->Node5 + + + + +Node6 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/2-TaggedMetrics.cxx + + + + +Node3->Node6 + + + + +Node7 + +/home/travis/build +/AliceO2Group/Monitoring +/examples/3-Verbosity.cxx + + +Node3->Node7 + + + + +Node8 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/4-RateDerivedMetric.cxx + + + + +Node3->Node8 + + + + +Node9 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/5-Benchmark.cxx + + + + +Node3->Node9 + + + + +Node10 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/6-Increment.cxx + + + + +Node3->Node10 + + + + +Node11 + +/home/travis/build +/AliceO2Group/Monitoring +/examples/7-InternalBenchamrk.cxx + + +Node3->Node11 + + + + +Node12 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/8-DbFiller.cxx + + + + +Node3->Node12 + + + + +Node13 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/MonitoringFactory.cxx + + + + +Node3->Node13 + + + + +Node14 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testApMon.cxx + + +Node3->Node14 + + + + +Node15 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testInfluxDb.cxx + + +Node3->Node15 + + + + +Node16 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testMonitoring.cxx + + +Node3->Node16 + + + + +Node17 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testMonitoringFactory.cxx + + +Node3->Node17 + + + + +Node18 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testProcessMonitor.cxx + + +Node3->Node18 + + + + +Node19 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testThreads.cxx + + +Node3->Node19 + + + + + diff --git a/DerivedMetrics_8h__incl.dot b/DerivedMetrics_8h__incl.dot new file mode 100644 index 000000000..55d30b9e7 --- /dev/null +++ b/DerivedMetrics_8h__incl.dot @@ -0,0 +1,31 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/include/Monitoring/DerivedMetrics.h" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/include/Monitoring/DerivedMetrics.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="unordered_map",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="memory",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="string",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="vector",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="Monitoring/Metric.h",height=0.2,width=0.4,color="black",URL="$Metric_8h.html"]; + Node6 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="chrono",height=0.2,width=0.4,color="grey75"]; + Node6 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="map",height=0.2,width=0.4,color="grey75"]; + Node6 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="regex",height=0.2,width=0.4,color="grey75"]; + Node6 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="variant",height=0.2,width=0.4,color="grey75"]; + Node6 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="Tags.h",height=0.2,width=0.4,color="black",URL="$Tags_8h.html"]; + Node11 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/DerivedMetrics_8h__incl.map b/DerivedMetrics_8h__incl.map new file mode 100644 index 000000000..a0303d6c8 --- /dev/null +++ b/DerivedMetrics_8h__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/DerivedMetrics_8h__incl.md5 b/DerivedMetrics_8h__incl.md5 new file mode 100644 index 000000000..45178358c --- /dev/null +++ b/DerivedMetrics_8h__incl.md5 @@ -0,0 +1 @@ +e8114de27d504db9dcf08a3fdf72b48d \ No newline at end of file diff --git a/DerivedMetrics_8h__incl.svg b/DerivedMetrics_8h__incl.svg new file mode 100644 index 000000000..89324e368 --- /dev/null +++ b/DerivedMetrics_8h__incl.svg @@ -0,0 +1,228 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/home/travis/build/AliceO2Group/Monitoring/include/Monitoring/DerivedMetrics.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/DerivedMetrics.h + + +Node2 + +unordered_map + + +Node1->Node2 + + + + +Node3 + +memory + + +Node1->Node3 + + + + +Node4 + +string + + +Node1->Node4 + + + + +Node5 + +vector + + +Node1->Node5 + + + + +Node6 + + +Monitoring/Metric.h + + + + +Node1->Node6 + + + + +Node6->Node4 + + + + +Node6->Node5 + + + + +Node7 + +chrono + + +Node6->Node7 + + + + +Node8 + +map + + +Node6->Node8 + + + + +Node9 + +regex + + +Node6->Node9 + + + + +Node10 + +variant + + +Node6->Node10 + + + + +Node11 + + +Tags.h + + + + +Node6->Node11 + + + + +Node11->Node4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DerivedMetrics_8h__incl_org.svg b/DerivedMetrics_8h__incl_org.svg new file mode 100644 index 000000000..01ee4f86f --- /dev/null +++ b/DerivedMetrics_8h__incl_org.svg @@ -0,0 +1,140 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/include/Monitoring/DerivedMetrics.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/DerivedMetrics.h + + +Node2 + +unordered_map + + +Node1->Node2 + + + + +Node3 + +memory + + +Node1->Node3 + + + + +Node4 + +string + + +Node1->Node4 + + + + +Node5 + +vector + + +Node1->Node5 + + + + +Node6 + + +Monitoring/Metric.h + + + + +Node1->Node6 + + + + +Node6->Node4 + + + + +Node6->Node5 + + + + +Node7 + +chrono + + +Node6->Node7 + + + + +Node8 + +map + + +Node6->Node8 + + + + +Node9 + +regex + + +Node6->Node9 + + + + +Node10 + +variant + + +Node6->Node10 + + + + +Node11 + + +Tags.h + + + + +Node6->Node11 + + + + +Node11->Node4 + + + + + diff --git a/DerivedMetrics_8h_source.html b/DerivedMetrics_8h_source.html new file mode 100644 index 000000000..31f771622 --- /dev/null +++ b/DerivedMetrics_8h_source.html @@ -0,0 +1,132 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/include/Monitoring/DerivedMetrics.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
DerivedMetrics.h
+
+
+Go to the documentation of this file.
1 // Copyright CERN and copyright holders of ALICE O2. This software is
2 // distributed under the terms of the GNU General Public License v3 (GPL
3 // Version 3), copied verbatim in the file "COPYING".
4 //
5 // See http://alice-o2.web.cern.ch/license for full licensing information.
6 //
7 // In applying this license CERN does not waive the privileges and immunities
8 // granted to it by virtue of its status as an Intergovernmental Organization
9 // or submit itself to any jurisdiction.
10 
15 
16 #ifndef ALICEO2_MONITORING_CORE_DERIVED_METRICS_H
17 #define ALICEO2_MONITORING_CORE_DERIVED_METRICS_H
18 
19 #include <unordered_map>
20 #include <memory>
21 #include <string>
22 #include <vector>
23 
24 #include "Monitoring/Metric.h"
25 
26 namespace o2
27 {
29 namespace monitoring
30 {
31 
33 enum class DerivedMetricMode { RATE,
34  INCREMENT,
35  NONE };
36 
42 {
43  public:
45  DerivedMetrics() = default;
46 
48  ~DerivedMetrics() = default;
49 
51  std::unordered_map<std::string, Metric> mStorage;
52 
55  void process(Metric& metric, DerivedMetricMode mode);
56 };
57 
58 } // namespace monitoring
59 } // namespace o2
60 
61 #endif // ALICEO2_MONITORING_CORE_DERIVED_METRICS_H
Definition: Backend.h:23
+
DerivedMetricMode
Available derived metric modes.
Definition: DerivedMetrics.h:33
+
Enables Calculation of derived metrics.
Definition: DerivedMetrics.h:41
+
Represents a metric including value, type of the value, name, timestamp and tags. ...
Definition: Metric.h:37
+
std::unordered_map< std::string, Metric > mStorage
Metrics store necessary for derived metrics.
Definition: DerivedMetrics.h:51
+ +
+
+ + + + diff --git a/HTTP_8cxx.html b/HTTP_8cxx.html new file mode 100644 index 000000000..fb8f43bed --- /dev/null +++ b/HTTP_8cxx.html @@ -0,0 +1,150 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/Transports/HTTP.cxx File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
HTTP.cxx File Reference
+
+
+
#include "HTTP.h"
+#include "../MonLogger.h"
+#include "../Exceptions/MonitoringException.h"
+#include <boost/algorithm/string.hpp>
+
+Include dependency graph for HTTP.cxx:
+
+
+
+
+
+ + + + + + + +

+Namespaces

 o2::monitoring
 ALICE O2 Monitoring system.
 
 o2::monitoring::transports
 Monitoring transports.
 
+

Detailed Description

+
+
+ + + + diff --git a/HTTP_8cxx__incl.dot b/HTTP_8cxx__incl.dot new file mode 100644 index 000000000..e4d25abb6 --- /dev/null +++ b/HTTP_8cxx__incl.dot @@ -0,0 +1,32 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/src/Transports/HTTP.cxx" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Transports/HTTP.cxx",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="HTTP.h",height=0.2,width=0.4,color="black",URL="$HTTP_8h.html"]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="TransportInterface.h",height=0.2,width=0.4,color="black",URL="$TransportInterface_8h.html"]; + Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="string",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="curl/curl.h",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="../MonLogger.h",height=0.2,width=0.4,color="black",URL="$MonLogger_8h.html"]; + Node6 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="chrono",height=0.2,width=0.4,color="grey75"]; + Node6 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="iomanip",height=0.2,width=0.4,color="grey75"]; + Node6 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="iostream",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="../Exceptions/Monitoring\lException.h",height=0.2,width=0.4,color="black",URL="$MonitoringException_8h.html"]; + Node10 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="exception",height=0.2,width=0.4,color="grey75"]; + Node10 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="boost/algorithm/string.hpp",height=0.2,width=0.4,color="grey75"]; +} diff --git a/HTTP_8cxx__incl.map b/HTTP_8cxx__incl.map new file mode 100644 index 000000000..3b9442d77 --- /dev/null +++ b/HTTP_8cxx__incl.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/HTTP_8cxx__incl.md5 b/HTTP_8cxx__incl.md5 new file mode 100644 index 000000000..f36a8b557 --- /dev/null +++ b/HTTP_8cxx__incl.md5 @@ -0,0 +1 @@ +2016b7d09b9e303a2153d5ba4f784885 \ No newline at end of file diff --git a/HTTP_8cxx__incl.svg b/HTTP_8cxx__incl.svg new file mode 100644 index 000000000..99eb3d49f --- /dev/null +++ b/HTTP_8cxx__incl.svg @@ -0,0 +1,240 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Transports/HTTP.cxx + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/HTTP.cxx + + +Node2 + + +HTTP.h + + + + +Node1->Node2 + + + + +Node6 + + +../MonLogger.h + + + + +Node1->Node6 + + + + +Node10 + + +../Exceptions/Monitoring +Exception.h + + + + +Node1->Node10 + + + + +Node12 + +boost/algorithm/string.hpp + + +Node1->Node12 + + + + +Node3 + + +TransportInterface.h + + + + +Node2->Node3 + + + + +Node4 + +string + + +Node2->Node4 + + + + +Node5 + +curl/curl.h + + +Node2->Node5 + + + + +Node3->Node4 + + + + +Node7 + +chrono + + +Node6->Node7 + + + + +Node8 + +iomanip + + +Node6->Node8 + + + + +Node9 + +iostream + + +Node6->Node9 + + + + +Node10->Node4 + + + + +Node11 + +exception + + +Node10->Node11 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/HTTP_8cxx__incl_org.svg b/HTTP_8cxx__incl_org.svg new file mode 100644 index 000000000..bcb90c453 --- /dev/null +++ b/HTTP_8cxx__incl_org.svg @@ -0,0 +1,152 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Transports/HTTP.cxx + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/HTTP.cxx + + +Node2 + + +HTTP.h + + + + +Node1->Node2 + + + + +Node6 + + +../MonLogger.h + + + + +Node1->Node6 + + + + +Node10 + + +../Exceptions/Monitoring +Exception.h + + + + +Node1->Node10 + + + + +Node12 + +boost/algorithm/string.hpp + + +Node1->Node12 + + + + +Node3 + + +TransportInterface.h + + + + +Node2->Node3 + + + + +Node4 + +string + + +Node2->Node4 + + + + +Node5 + +curl/curl.h + + +Node2->Node5 + + + + +Node3->Node4 + + + + +Node7 + +chrono + + +Node6->Node7 + + + + +Node8 + +iomanip + + +Node6->Node8 + + + + +Node9 + +iostream + + +Node6->Node9 + + + + +Node10->Node4 + + + + +Node11 + +exception + + +Node10->Node11 + + + + + diff --git a/HTTP_8h.html b/HTTP_8h.html new file mode 100644 index 000000000..9e5ef7492 --- /dev/null +++ b/HTTP_8h.html @@ -0,0 +1,164 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/Transports/HTTP.h File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
HTTP.h File Reference
+
+
+
#include "TransportInterface.h"
+#include <curl/curl.h>
+#include <string>
+
+Include dependency graph for HTTP.h:
+
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  o2::monitoring::transports::HTTP
 HTTP POST transport. More...
 
+ + + + + + + +

+Namespaces

 o2::monitoring
 ALICE O2 Monitoring system.
 
 o2::monitoring::transports
 Monitoring transports.
 
+

Detailed Description

+
+
+ + + + diff --git a/HTTP_8h__dep__incl.dot b/HTTP_8h__dep__incl.dot new file mode 100644 index 000000000..f6b8d9b86 --- /dev/null +++ b/HTTP_8h__dep__incl.dot @@ -0,0 +1,10 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/src/Transports/HTTP.h" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Transports/HTTP.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Transports/HTTP.cxx",height=0.2,width=0.4,color="black",URL="$HTTP_8cxx.html"]; +} diff --git a/HTTP_8h__dep__incl.map b/HTTP_8h__dep__incl.map new file mode 100644 index 000000000..3e5bd0ac5 --- /dev/null +++ b/HTTP_8h__dep__incl.map @@ -0,0 +1,3 @@ + + + diff --git a/HTTP_8h__dep__incl.md5 b/HTTP_8h__dep__incl.md5 new file mode 100644 index 000000000..d5bbc26cf --- /dev/null +++ b/HTTP_8h__dep__incl.md5 @@ -0,0 +1 @@ +f86f207d27779c8f42a5b0efab32336b \ No newline at end of file diff --git a/HTTP_8h__dep__incl.svg b/HTTP_8h__dep__incl.svg new file mode 100644 index 000000000..8f09d3020 --- /dev/null +++ b/HTTP_8h__dep__incl.svg @@ -0,0 +1,34 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Transports/HTTP.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/HTTP.h + + +Node2 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/HTTP.cxx + + + + +Node1->Node2 + + + + + diff --git a/HTTP_8h__incl.dot b/HTTP_8h__incl.dot new file mode 100644 index 000000000..509bf43b4 --- /dev/null +++ b/HTTP_8h__incl.dot @@ -0,0 +1,15 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/src/Transports/HTTP.h" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Transports/HTTP.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="TransportInterface.h",height=0.2,width=0.4,color="black",URL="$TransportInterface_8h.html"]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="string",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="curl/curl.h",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/HTTP_8h__incl.map b/HTTP_8h__incl.map new file mode 100644 index 000000000..a31fdf53b --- /dev/null +++ b/HTTP_8h__incl.map @@ -0,0 +1,3 @@ + + + diff --git a/HTTP_8h__incl.md5 b/HTTP_8h__incl.md5 new file mode 100644 index 000000000..3d96e17e9 --- /dev/null +++ b/HTTP_8h__incl.md5 @@ -0,0 +1 @@ +baf694a3d54c0acb5bec53fa0fbc7067 \ No newline at end of file diff --git a/HTTP_8h__incl.svg b/HTTP_8h__incl.svg new file mode 100644 index 000000000..3cdc66eed --- /dev/null +++ b/HTTP_8h__incl.svg @@ -0,0 +1,57 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Transports/HTTP.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/HTTP.h + + +Node2 + + +TransportInterface.h + + + + +Node1->Node2 + + + + +Node3 + +string + + +Node1->Node3 + + + + +Node4 + +curl/curl.h + + +Node1->Node4 + + + + +Node2->Node3 + + + + + diff --git a/HTTP_8h_source.html b/HTTP_8h_source.html new file mode 100644 index 000000000..37545b7f3 --- /dev/null +++ b/HTTP_8h_source.html @@ -0,0 +1,134 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/Transports/HTTP.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
HTTP.h
+
+
+Go to the documentation of this file.
1 
6 #ifndef ALICEO2_MONITORING_TRANSPORTS_HTTP_H
7 #define ALICEO2_MONITORING_TRANSPORTS_HTTP_H
8 
9 #include "TransportInterface.h"
10 
11 #include <curl/curl.h>
12 #include <string>
13 
14 namespace o2
15 {
17 namespace monitoring
18 {
20 namespace transports
21 {
22 
26 class HTTP : public TransportInterface
27 {
28  public:
31  HTTP(const std::string& url);
32 
34  ~HTTP();
35 
38  void send(std::string&& post);
39 
41  void addHeader(const std::string& header);
42  private:
44  CURL *mCurl;
45 
47  struct curl_slist *mHeaders;
48 };
49 
50 } // namespace transports
51 } // namespace monitoring
52 } // namespace o2
53 
54 #endif // ALICEO2_MONITORING_TRANSPORTS_HTTP_H
Definition: Backend.h:23
+
void addHeader(const std::string &header)
Adds custom HTTP header.
Definition: HTTP.cxx:44
+
void send(std::string &&post)
Definition: HTTP.cxx:50
+
Transport interface for backends.
Definition: TransportInterface.h:31
+
~HTTP()
Destructor.
Definition: HTTP.cxx:37
+ +
HTTP POST transport.
Definition: HTTP.h:26
+
HTTP(const std::string &url)
Definition: HTTP.cxx:20
+
+
+ + + + diff --git a/InfluxDB_8cxx.html b/InfluxDB_8cxx.html new file mode 100644 index 000000000..557518306 --- /dev/null +++ b/InfluxDB_8cxx.html @@ -0,0 +1,166 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/Backends/InfluxDB.cxx File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
InfluxDB.cxx File Reference
+
+
+
#include "InfluxDB.h"
+#include <sstream>
+#include <string>
+#include <variant>
+#include <boost/algorithm/string/replace.hpp>
+#include "../Exceptions/MonitoringException.h"
+
+Include dependency graph for InfluxDB.cxx:
+
+
+
+
+
+ + + +

+Classes

struct  o2::monitoring::backends::overloaded< Ts >
 
+ + + + + + + +

+Namespaces

 o2::monitoring
 ALICE O2 Monitoring system.
 
 o2::monitoring::backends
 Monitoring backends.
 
+ + + + +

+Functions

+template<class... Ts>
 o2::monitoring::backends::overloaded (Ts...) -> overloaded< Ts... >
 
+

Detailed Description

+
+
+ + + + diff --git a/InfluxDB_8cxx.js b/InfluxDB_8cxx.js new file mode 100644 index 000000000..f1790e2b3 --- /dev/null +++ b/InfluxDB_8cxx.js @@ -0,0 +1,5 @@ +var InfluxDB_8cxx = +[ + [ "overloaded", "structo2_1_1monitoring_1_1backends_1_1overloaded.html", null ], + [ "overloaded", "InfluxDB_8cxx.html#a50daacbe666fad58e0e3761deef1173f", null ] +]; \ No newline at end of file diff --git a/InfluxDB_8cxx__incl.dot b/InfluxDB_8cxx__incl.dot new file mode 100644 index 000000000..dd0dbaa1e --- /dev/null +++ b/InfluxDB_8cxx__incl.dot @@ -0,0 +1,54 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/src/Backends/InfluxDB.cxx" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Backends/InfluxDB.cxx",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="InfluxDB.h",height=0.2,width=0.4,color="black",URL="$InfluxDB_8h.html"]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="Monitoring/Backend.h",height=0.2,width=0.4,color="black",URL="$Backend_8h.html"]; + Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="chrono",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="string",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="Monitoring/Metric.h",height=0.2,width=0.4,color="black",URL="$Metric_8h.html"]; + Node6 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="map",height=0.2,width=0.4,color="grey75"]; + Node6 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="regex",height=0.2,width=0.4,color="grey75"]; + Node6 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="variant",height=0.2,width=0.4,color="grey75"]; + Node6 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="vector",height=0.2,width=0.4,color="grey75"]; + Node6 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="Tags.h",height=0.2,width=0.4,color="black",URL="$Tags_8h.html"]; + Node11 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="../Transports/TransportInterface.h",height=0.2,width=0.4,color="black",URL="$TransportInterface_8h.html"]; + Node12 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [label="../MonLogger.h",height=0.2,width=0.4,color="black",URL="$MonLogger_8h.html"]; + Node13 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 [label="iomanip",height=0.2,width=0.4,color="grey75"]; + Node13 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 [label="iostream",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node16 [label="sstream",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node17 [label="boost/algorithm/string\l/replace.hpp",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node18 [label="../Exceptions/Monitoring\lException.h",height=0.2,width=0.4,color="black",URL="$MonitoringException_8h.html"]; + Node18 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 [label="exception",height=0.2,width=0.4,color="grey75"]; + Node18 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/InfluxDB_8cxx__incl.map b/InfluxDB_8cxx__incl.map new file mode 100644 index 000000000..09adc2aaa --- /dev/null +++ b/InfluxDB_8cxx__incl.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/InfluxDB_8cxx__incl.md5 b/InfluxDB_8cxx__incl.md5 new file mode 100644 index 000000000..757aabef0 --- /dev/null +++ b/InfluxDB_8cxx__incl.md5 @@ -0,0 +1 @@ +6c525d1addda27cd82d3c38038ce1398 \ No newline at end of file diff --git a/InfluxDB_8cxx__incl.svg b/InfluxDB_8cxx__incl.svg new file mode 100644 index 000000000..4e2915267 --- /dev/null +++ b/InfluxDB_8cxx__incl.svg @@ -0,0 +1,360 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Backends/InfluxDB.cxx + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/InfluxDB.cxx + + +Node2 + + +InfluxDB.h + + + + +Node1->Node2 + + + + +Node5 + +string + + +Node1->Node5 + + + + +Node9 + +variant + + +Node1->Node9 + + + + +Node16 + +sstream + + +Node1->Node16 + + + + +Node17 + +boost/algorithm/string +/replace.hpp + + +Node1->Node17 + + + + +Node18 + + +../Exceptions/Monitoring +Exception.h + + + + +Node1->Node18 + + + + +Node3 + + +Monitoring/Backend.h + + + + +Node2->Node3 + + + + +Node4 + +chrono + + +Node2->Node4 + + + + +Node2->Node5 + + + + +Node12 + + +../Transports/TransportInterface.h + + + + +Node2->Node12 + + + + +Node13 + + +../MonLogger.h + + + + +Node2->Node13 + + + + +Node3->Node4 + + + + +Node3->Node5 + + + + +Node6 + + +Monitoring/Metric.h + + + + +Node3->Node6 + + + + +Node6->Node4 + + + + +Node6->Node5 + + + + +Node7 + +map + + +Node6->Node7 + + + + +Node8 + +regex + + +Node6->Node8 + + + + +Node6->Node9 + + + + +Node10 + +vector + + +Node6->Node10 + + + + +Node11 + + +Tags.h + + + + +Node6->Node11 + + + + +Node11->Node5 + + + + +Node12->Node5 + + + + +Node13->Node4 + + + + +Node14 + +iomanip + + +Node13->Node14 + + + + +Node15 + +iostream + + +Node13->Node15 + + + + +Node18->Node5 + + + + +Node19 + +exception + + +Node18->Node19 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/InfluxDB_8cxx__incl_org.svg b/InfluxDB_8cxx__incl_org.svg new file mode 100644 index 000000000..eea11af70 --- /dev/null +++ b/InfluxDB_8cxx__incl_org.svg @@ -0,0 +1,272 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Backends/InfluxDB.cxx + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/InfluxDB.cxx + + +Node2 + + +InfluxDB.h + + + + +Node1->Node2 + + + + +Node5 + +string + + +Node1->Node5 + + + + +Node9 + +variant + + +Node1->Node9 + + + + +Node16 + +sstream + + +Node1->Node16 + + + + +Node17 + +boost/algorithm/string +/replace.hpp + + +Node1->Node17 + + + + +Node18 + + +../Exceptions/Monitoring +Exception.h + + + + +Node1->Node18 + + + + +Node3 + + +Monitoring/Backend.h + + + + +Node2->Node3 + + + + +Node4 + +chrono + + +Node2->Node4 + + + + +Node2->Node5 + + + + +Node12 + + +../Transports/TransportInterface.h + + + + +Node2->Node12 + + + + +Node13 + + +../MonLogger.h + + + + +Node2->Node13 + + + + +Node3->Node4 + + + + +Node3->Node5 + + + + +Node6 + + +Monitoring/Metric.h + + + + +Node3->Node6 + + + + +Node6->Node4 + + + + +Node6->Node5 + + + + +Node7 + +map + + +Node6->Node7 + + + + +Node8 + +regex + + +Node6->Node8 + + + + +Node6->Node9 + + + + +Node10 + +vector + + +Node6->Node10 + + + + +Node11 + + +Tags.h + + + + +Node6->Node11 + + + + +Node11->Node5 + + + + +Node12->Node5 + + + + +Node13->Node4 + + + + +Node14 + +iomanip + + +Node13->Node14 + + + + +Node15 + +iostream + + +Node13->Node15 + + + + +Node18->Node5 + + + + +Node19 + +exception + + +Node18->Node19 + + + + + diff --git a/InfluxDB_8h.html b/InfluxDB_8h.html new file mode 100644 index 000000000..b9da1a602 --- /dev/null +++ b/InfluxDB_8h.html @@ -0,0 +1,166 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/Backends/InfluxDB.h File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
InfluxDB.h File Reference
+
+
+
#include "Monitoring/Backend.h"
+#include "../Transports/TransportInterface.h"
+#include "../MonLogger.h"
+#include <chrono>
+#include <string>
+
+Include dependency graph for InfluxDB.h:
+
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  o2::monitoring::backends::InfluxDB
 Backend that sends metrics to InfluxDB time-series databse. More...
 
+ + + + + + + +

+Namespaces

 o2::monitoring
 ALICE O2 Monitoring system.
 
 o2::monitoring::backends
 Monitoring backends.
 
+

Detailed Description

+
+
+ + + + diff --git a/InfluxDB_8h__dep__incl.dot b/InfluxDB_8h__dep__incl.dot new file mode 100644 index 000000000..41ed6d5b6 --- /dev/null +++ b/InfluxDB_8h__dep__incl.dot @@ -0,0 +1,12 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/src/Backends/InfluxDB.h" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Backends/InfluxDB.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Backends/InfluxDB.cxx",height=0.2,width=0.4,color="black",URL="$InfluxDB_8cxx.html"]; + Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/MonitoringFactory.cxx",height=0.2,width=0.4,color="black",URL="$MonitoringFactory_8cxx.html"]; +} diff --git a/InfluxDB_8h__dep__incl.map b/InfluxDB_8h__dep__incl.map new file mode 100644 index 000000000..3159515f1 --- /dev/null +++ b/InfluxDB_8h__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/InfluxDB_8h__dep__incl.md5 b/InfluxDB_8h__dep__incl.md5 new file mode 100644 index 000000000..d5dbc5bf8 --- /dev/null +++ b/InfluxDB_8h__dep__incl.md5 @@ -0,0 +1 @@ +c0e87444a24fc8117afea8d3f3a81647 \ No newline at end of file diff --git a/InfluxDB_8h__dep__incl.svg b/InfluxDB_8h__dep__incl.svg new file mode 100644 index 000000000..d3936111c --- /dev/null +++ b/InfluxDB_8h__dep__incl.svg @@ -0,0 +1,49 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Backends/InfluxDB.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/InfluxDB.h + + +Node2 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/InfluxDB.cxx + + + + +Node1->Node2 + + + + +Node3 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/MonitoringFactory.cxx + + + + +Node1->Node3 + + + + + diff --git a/InfluxDB_8h__incl.dot b/InfluxDB_8h__incl.dot new file mode 100644 index 000000000..4e458c794 --- /dev/null +++ b/InfluxDB_8h__incl.dot @@ -0,0 +1,41 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/src/Backends/InfluxDB.h" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Backends/InfluxDB.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="Monitoring/Backend.h",height=0.2,width=0.4,color="black",URL="$Backend_8h.html"]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="chrono",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="string",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="Monitoring/Metric.h",height=0.2,width=0.4,color="black",URL="$Metric_8h.html"]; + Node5 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="map",height=0.2,width=0.4,color="grey75"]; + Node5 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="regex",height=0.2,width=0.4,color="grey75"]; + Node5 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="variant",height=0.2,width=0.4,color="grey75"]; + Node5 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="vector",height=0.2,width=0.4,color="grey75"]; + Node5 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="Tags.h",height=0.2,width=0.4,color="black",URL="$Tags_8h.html"]; + Node10 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="../Transports/TransportInterface.h",height=0.2,width=0.4,color="black",URL="$TransportInterface_8h.html"]; + Node11 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="../MonLogger.h",height=0.2,width=0.4,color="black",URL="$MonLogger_8h.html"]; + Node12 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [label="iomanip",height=0.2,width=0.4,color="grey75"]; + Node12 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 [label="iostream",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/InfluxDB_8h__incl.map b/InfluxDB_8h__incl.map new file mode 100644 index 000000000..ccc688c93 --- /dev/null +++ b/InfluxDB_8h__incl.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/InfluxDB_8h__incl.md5 b/InfluxDB_8h__incl.md5 new file mode 100644 index 000000000..453f1736f --- /dev/null +++ b/InfluxDB_8h__incl.md5 @@ -0,0 +1 @@ +46d88d6569f37842da0c851f56640367 \ No newline at end of file diff --git a/InfluxDB_8h__incl.svg b/InfluxDB_8h__incl.svg new file mode 100644 index 000000000..92ed92e53 --- /dev/null +++ b/InfluxDB_8h__incl.svg @@ -0,0 +1,287 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Backends/InfluxDB.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/InfluxDB.h + + +Node2 + + +Monitoring/Backend.h + + + + +Node1->Node2 + + + + +Node3 + +chrono + + +Node1->Node3 + + + + +Node4 + +string + + +Node1->Node4 + + + + +Node11 + + +../Transports/TransportInterface.h + + + + +Node1->Node11 + + + + +Node12 + + +../MonLogger.h + + + + +Node1->Node12 + + + + +Node2->Node3 + + + + +Node2->Node4 + + + + +Node5 + + +Monitoring/Metric.h + + + + +Node2->Node5 + + + + +Node5->Node3 + + + + +Node5->Node4 + + + + +Node6 + +map + + +Node5->Node6 + + + + +Node7 + +regex + + +Node5->Node7 + + + + +Node8 + +variant + + +Node5->Node8 + + + + +Node9 + +vector + + +Node5->Node9 + + + + +Node10 + + +Tags.h + + + + +Node5->Node10 + + + + +Node10->Node4 + + + + +Node11->Node4 + + + + +Node12->Node3 + + + + +Node13 + +iomanip + + +Node12->Node13 + + + + +Node14 + +iostream + + +Node12->Node14 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/InfluxDB_8h__incl_org.svg b/InfluxDB_8h__incl_org.svg new file mode 100644 index 000000000..b9d20780e --- /dev/null +++ b/InfluxDB_8h__incl_org.svg @@ -0,0 +1,199 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Backends/InfluxDB.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/InfluxDB.h + + +Node2 + + +Monitoring/Backend.h + + + + +Node1->Node2 + + + + +Node3 + +chrono + + +Node1->Node3 + + + + +Node4 + +string + + +Node1->Node4 + + + + +Node11 + + +../Transports/TransportInterface.h + + + + +Node1->Node11 + + + + +Node12 + + +../MonLogger.h + + + + +Node1->Node12 + + + + +Node2->Node3 + + + + +Node2->Node4 + + + + +Node5 + + +Monitoring/Metric.h + + + + +Node2->Node5 + + + + +Node5->Node3 + + + + +Node5->Node4 + + + + +Node6 + +map + + +Node5->Node6 + + + + +Node7 + +regex + + +Node5->Node7 + + + + +Node8 + +variant + + +Node5->Node8 + + + + +Node9 + +vector + + +Node5->Node9 + + + + +Node10 + + +Tags.h + + + + +Node5->Node10 + + + + +Node10->Node4 + + + + +Node11->Node4 + + + + +Node12->Node3 + + + + +Node13 + +iomanip + + +Node12->Node13 + + + + +Node14 + +iostream + + +Node12->Node14 + + + + + diff --git a/InfluxDB_8h_source.html b/InfluxDB_8h_source.html new file mode 100644 index 000000000..32038e04a --- /dev/null +++ b/InfluxDB_8h_source.html @@ -0,0 +1,137 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/Backends/InfluxDB.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
InfluxDB.h
+
+
+Go to the documentation of this file.
1 // Copyright CERN and copyright holders of ALICE O2. This software is
2 // distributed under the terms of the GNU General Public License v3 (GPL
3 // Version 3), copied verbatim in the file "COPYING".
4 //
5 // See http://alice-o2.web.cern.ch/license for full licensing information.
6 //
7 // In applying this license CERN does not waive the privileges and immunities
8 // granted to it by virtue of its status as an Intergovernmental Organization
9 // or submit itself to any jurisdiction.
10 
15 
16 #ifndef ALICEO2_MONITORING_BACKENDS_INFLUXDB_H
17 #define ALICEO2_MONITORING_BACKENDS_INFLUXDB_H
18 
19 #include "Monitoring/Backend.h"
20 #include "../Transports/TransportInterface.h"
21 #include "../MonLogger.h"
22 #include <chrono>
23 #include <string>
24 
25 namespace o2
26 {
28 namespace monitoring
29 {
31 namespace backends
32 {
33 
37 class InfluxDB final : public Backend
38 {
39  public:
42  InfluxDB(std::unique_ptr<transports::TransportInterface> transport);
43 
45  ~InfluxDB() = default;
46 
50  inline unsigned long convertTimestamp(const std::chrono::time_point<std::chrono::system_clock>& timestamp);
51 
54  void send(const Metric& metric) override;
55 
58  void send(std::vector<Metric>&& metrics) override;
59 
63  void addGlobalTag(std::string_view name, std::string_view value) override;
64 
67  std::string toInfluxLineProtocol(const Metric& metric);
68 
69  private:
70  std::unique_ptr<transports::TransportInterface> mTransport;
71  std::string tagSet;
72 
75  void escape(std::string& escaped);
76 };
77 
78 } // namespace backends
79 } // namespace monitoring
80 } // namespace o2
81 
82 #endif // ALICEO2_MONITORING_BACKENDS_INFLUXDB_H
~InfluxDB()=default
Default destructor.
+
void addGlobalTag(std::string_view name, std::string_view value) override
Definition: InfluxDB.cxx:114
+
Definition: Backend.h:23
+
unsigned long convertTimestamp(const std::chrono::time_point< std::chrono::system_clock > &timestamp)
Definition: InfluxDB.cxx:45
+
std::string toInfluxLineProtocol(const Metric &metric)
Definition: InfluxDB.cxx:84
+
Backend pure virtual interface.
Definition: Backend.h:33
+
Backend that sends metrics to InfluxDB time-series databse.
Definition: InfluxDB.h:37
+
Represents a metric including value, type of the value, name, timestamp and tags. ...
Definition: Metric.h:37
+
InfluxDB(std::unique_ptr< transports::TransportInterface > transport)
Definition: InfluxDB.cxx:39
+ +
void send(const Metric &metric) override
Definition: InfluxDB.cxx:76
+
+
+ + + + diff --git a/Kafka_8cxx.html b/Kafka_8cxx.html new file mode 100644 index 000000000..1efb67f04 --- /dev/null +++ b/Kafka_8cxx.html @@ -0,0 +1,149 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/Transports/Kafka.cxx File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Kafka.cxx File Reference
+
+
+
#include "Kafka.h"
+#include <string>
+#include "../MonLogger.h"
+
+Include dependency graph for Kafka.cxx:
+
+
+
+
+
+ + + + + + + +

+Namespaces

 o2::monitoring
 ALICE O2 Monitoring system.
 
 o2::monitoring::transports
 Monitoring transports.
 
+

Detailed Description

+
+
+ + + + diff --git a/Kafka_8cxx__incl.dot b/Kafka_8cxx__incl.dot new file mode 100644 index 000000000..d6a5514d4 --- /dev/null +++ b/Kafka_8cxx__incl.dot @@ -0,0 +1,33 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/src/Transports/Kafka.cxx" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Transports/Kafka.cxx",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="Kafka.h",height=0.2,width=0.4,color="black",URL="$Kafka_8h.html"]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="TransportInterface.h",height=0.2,width=0.4,color="black",URL="$TransportInterface_8h.html"]; + Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="string",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="boost/array.hpp",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="boost/asio.hpp",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="boost/algorithm/string.hpp",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="chrono",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="librdkafka/rdkafkacpp.h",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="../MonLogger.h",height=0.2,width=0.4,color="black",URL="$MonLogger_8h.html"]; + Node10 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="iomanip",height=0.2,width=0.4,color="grey75"]; + Node10 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="iostream",height=0.2,width=0.4,color="grey75"]; +} diff --git a/Kafka_8cxx__incl.map b/Kafka_8cxx__incl.map new file mode 100644 index 000000000..a44531428 --- /dev/null +++ b/Kafka_8cxx__incl.map @@ -0,0 +1,5 @@ + + + + + diff --git a/Kafka_8cxx__incl.md5 b/Kafka_8cxx__incl.md5 new file mode 100644 index 000000000..03fe4a3d8 --- /dev/null +++ b/Kafka_8cxx__incl.md5 @@ -0,0 +1 @@ +6b1a6efac597a1e0f76de602a1501db7 \ No newline at end of file diff --git a/Kafka_8cxx__incl.svg b/Kafka_8cxx__incl.svg new file mode 100644 index 000000000..72867a9e9 --- /dev/null +++ b/Kafka_8cxx__incl.svg @@ -0,0 +1,241 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Transports/Kafka.cxx + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/Kafka.cxx + + +Node2 + + +Kafka.h + + + + +Node1->Node2 + + + + +Node4 + +string + + +Node1->Node4 + + + + +Node10 + + +../MonLogger.h + + + + +Node1->Node10 + + + + +Node3 + + +TransportInterface.h + + + + +Node2->Node3 + + + + +Node2->Node4 + + + + +Node5 + +boost/array.hpp + + +Node2->Node5 + + + + +Node6 + +boost/asio.hpp + + +Node2->Node6 + + + + +Node7 + +boost/algorithm/string.hpp + + +Node2->Node7 + + + + +Node8 + +chrono + + +Node2->Node8 + + + + +Node9 + +librdkafka/rdkafkacpp.h + + +Node2->Node9 + + + + +Node3->Node4 + + + + +Node10->Node8 + + + + +Node11 + +iomanip + + +Node10->Node11 + + + + +Node12 + +iostream + + +Node10->Node12 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Kafka_8cxx__incl_org.svg b/Kafka_8cxx__incl_org.svg new file mode 100644 index 000000000..258fbf9ea --- /dev/null +++ b/Kafka_8cxx__incl_org.svg @@ -0,0 +1,153 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Transports/Kafka.cxx + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/Kafka.cxx + + +Node2 + + +Kafka.h + + + + +Node1->Node2 + + + + +Node4 + +string + + +Node1->Node4 + + + + +Node10 + + +../MonLogger.h + + + + +Node1->Node10 + + + + +Node3 + + +TransportInterface.h + + + + +Node2->Node3 + + + + +Node2->Node4 + + + + +Node5 + +boost/array.hpp + + +Node2->Node5 + + + + +Node6 + +boost/asio.hpp + + +Node2->Node6 + + + + +Node7 + +boost/algorithm/string.hpp + + +Node2->Node7 + + + + +Node8 + +chrono + + +Node2->Node8 + + + + +Node9 + +librdkafka/rdkafkacpp.h + + +Node2->Node9 + + + + +Node3->Node4 + + + + +Node10->Node8 + + + + +Node11 + +iomanip + + +Node10->Node11 + + + + +Node12 + +iostream + + +Node10->Node12 + + + + + diff --git a/Kafka_8h.html b/Kafka_8h.html new file mode 100644 index 000000000..0e1e84433 --- /dev/null +++ b/Kafka_8h.html @@ -0,0 +1,168 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/Transports/Kafka.h File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Kafka.h File Reference
+
+
+
#include "TransportInterface.h"
+#include <boost/array.hpp>
+#include <boost/asio.hpp>
+#include <boost/algorithm/string.hpp>
+#include <chrono>
+#include <string>
+#include <librdkafka/rdkafkacpp.h>
+
+Include dependency graph for Kafka.h:
+
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  o2::monitoring::transports::Kafka
 Transport that sends string formatted metrics via Kafka. More...
 
+ + + + + + + +

+Namespaces

 o2::monitoring
 ALICE O2 Monitoring system.
 
 o2::monitoring::transports
 Monitoring transports.
 
+

Detailed Description

+
+
+ + + + diff --git a/Kafka_8h__dep__incl.dot b/Kafka_8h__dep__incl.dot new file mode 100644 index 000000000..4c9046eb1 --- /dev/null +++ b/Kafka_8h__dep__incl.dot @@ -0,0 +1,10 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/src/Transports/Kafka.h" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Transports/Kafka.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Transports/Kafka.cxx",height=0.2,width=0.4,color="black",URL="$Kafka_8cxx.html"]; +} diff --git a/Kafka_8h__dep__incl.map b/Kafka_8h__dep__incl.map new file mode 100644 index 000000000..a5376fca3 --- /dev/null +++ b/Kafka_8h__dep__incl.map @@ -0,0 +1,3 @@ + + + diff --git a/Kafka_8h__dep__incl.md5 b/Kafka_8h__dep__incl.md5 new file mode 100644 index 000000000..f613e1d21 --- /dev/null +++ b/Kafka_8h__dep__incl.md5 @@ -0,0 +1 @@ +e9ab8cb5147c84cd50a06d284e8f9156 \ No newline at end of file diff --git a/Kafka_8h__dep__incl.svg b/Kafka_8h__dep__incl.svg new file mode 100644 index 000000000..c674f1f67 --- /dev/null +++ b/Kafka_8h__dep__incl.svg @@ -0,0 +1,34 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Transports/Kafka.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/Kafka.h + + +Node2 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/Kafka.cxx + + + + +Node1->Node2 + + + + + diff --git a/Kafka_8h__incl.dot b/Kafka_8h__incl.dot new file mode 100644 index 000000000..24c958d90 --- /dev/null +++ b/Kafka_8h__incl.dot @@ -0,0 +1,23 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/src/Transports/Kafka.h" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Transports/Kafka.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="TransportInterface.h",height=0.2,width=0.4,color="black",URL="$TransportInterface_8h.html"]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="string",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="boost/array.hpp",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="boost/asio.hpp",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="boost/algorithm/string.hpp",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="chrono",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="librdkafka/rdkafkacpp.h",height=0.2,width=0.4,color="grey75"]; +} diff --git a/Kafka_8h__incl.map b/Kafka_8h__incl.map new file mode 100644 index 000000000..ec25d9bb2 --- /dev/null +++ b/Kafka_8h__incl.map @@ -0,0 +1,3 @@ + + + diff --git a/Kafka_8h__incl.md5 b/Kafka_8h__incl.md5 new file mode 100644 index 000000000..aad70c765 --- /dev/null +++ b/Kafka_8h__incl.md5 @@ -0,0 +1 @@ +e0a6c38d65e4b9bc90a25c7c01d89e0d \ No newline at end of file diff --git a/Kafka_8h__incl.svg b/Kafka_8h__incl.svg new file mode 100644 index 000000000..b68b0d546 --- /dev/null +++ b/Kafka_8h__incl.svg @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Transports/Kafka.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/Kafka.h + + +Node2 + + +TransportInterface.h + + + + +Node1->Node2 + + + + +Node3 + +string + + +Node1->Node3 + + + + +Node4 + +boost/array.hpp + + +Node1->Node4 + + + + +Node5 + +boost/asio.hpp + + +Node1->Node5 + + + + +Node6 + +boost/algorithm/string.hpp + + +Node1->Node6 + + + + +Node7 + +chrono + + +Node1->Node7 + + + + +Node8 + +librdkafka/rdkafkacpp.h + + +Node1->Node8 + + + + +Node2->Node3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Kafka_8h__incl_org.svg b/Kafka_8h__incl_org.svg new file mode 100644 index 000000000..60edc6eef --- /dev/null +++ b/Kafka_8h__incl_org.svg @@ -0,0 +1,97 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Transports/Kafka.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/Kafka.h + + +Node2 + + +TransportInterface.h + + + + +Node1->Node2 + + + + +Node3 + +string + + +Node1->Node3 + + + + +Node4 + +boost/array.hpp + + +Node1->Node4 + + + + +Node5 + +boost/asio.hpp + + +Node1->Node5 + + + + +Node6 + +boost/algorithm/string.hpp + + +Node1->Node6 + + + + +Node7 + +chrono + + +Node1->Node7 + + + + +Node8 + +librdkafka/rdkafkacpp.h + + +Node1->Node8 + + + + +Node2->Node3 + + + + + diff --git a/Kafka_8h_source.html b/Kafka_8h_source.html new file mode 100644 index 000000000..a4fb6e8cc --- /dev/null +++ b/Kafka_8h_source.html @@ -0,0 +1,133 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/Transports/Kafka.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Kafka.h
+
+
+Go to the documentation of this file.
1 // Copyright CERN and copyright holders of ALICE O2. This software is
2 // distributed under the terms of the GNU General Public License v3 (GPL
3 // Version 3), copied verbatim in the file "COPYING".
4 //
5 // See http://alice-o2.web.cern.ch/license for full licensing information.
6 //
7 // In applying this license CERN does not waive the privileges and immunities
8 // granted to it by virtue of its status as an Intergovernmental Organization
9 // or submit itself to any jurisdiction.
10 
15 
16 #ifndef ALICEO2_MONITORING_TRANSPORTS_KAFKA_H
17 #define ALICEO2_MONITORING_TRANSPORTS_KAFKA_H
18 
19 #include "TransportInterface.h"
20 
21 #include <boost/array.hpp>
22 #include <boost/asio.hpp>
23 #include <boost/algorithm/string.hpp>
24 #include <chrono>
25 #include <string>
26 #include <librdkafka/rdkafkacpp.h>
27 
28 namespace o2
29 {
31 namespace monitoring
32 {
34 namespace transports
35 {
36 
38 class Kafka : public TransportInterface
39 {
40  public:
45  Kafka(const std::string& host, unsigned int port, const std::string& topic = "test");
46 
48  ~Kafka();
49 
52  void send(std::string&& message) override;
53 
54  private:
56  RdKafka::Producer* producer;
57 
59  std::string mTopic;
60 };
61 
62 } // namespace transports
63 } // namespace monitoring
64 } // namespace o2
65 
66 #endif // ALICEO2_MONITORING_TRANSPORTS_KAFKA_H
Definition: Backend.h:23
+
~Kafka()
Deletes producer.
Definition: Kafka.cxx:48
+
Transport interface for backends.
Definition: TransportInterface.h:31
+ +
Kafka(const std::string &host, unsigned int port, const std::string &topic="test")
Definition: Kafka.cxx:29
+
void send(std::string &&message) override
Definition: Kafka.cxx:53
+
Transport that sends string formatted metrics via Kafka.
Definition: Kafka.h:38
+
+
+ + + + diff --git a/Metric_8cxx.html b/Metric_8cxx.html new file mode 100644 index 000000000..5bf30c6c1 --- /dev/null +++ b/Metric_8cxx.html @@ -0,0 +1,147 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/Metric.cxx File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Metric.cxx File Reference
+
+
+
#include "Monitoring/Metric.h"
+#include <iostream>
+#include <chrono>
+#include <memory>
+
+Include dependency graph for Metric.cxx:
+
+
+
+
+
+ + + + +

+Namespaces

 o2::monitoring
 ALICE O2 Monitoring system.
 
+

Detailed Description

+
+
+ + + + diff --git a/Metric_8cxx__incl.dot b/Metric_8cxx__incl.dot new file mode 100644 index 000000000..75d00befa --- /dev/null +++ b/Metric_8cxx__incl.dot @@ -0,0 +1,30 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/src/Metric.cxx" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Metric.cxx",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="Monitoring/Metric.h",height=0.2,width=0.4,color="black",URL="$Metric_8h.html"]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="string",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="chrono",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="map",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="regex",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="variant",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="vector",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="Tags.h",height=0.2,width=0.4,color="black",URL="$Tags_8h.html"]; + Node9 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="iostream",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="memory",height=0.2,width=0.4,color="grey75"]; +} diff --git a/Metric_8cxx__incl.map b/Metric_8cxx__incl.map new file mode 100644 index 000000000..f4d1b2097 --- /dev/null +++ b/Metric_8cxx__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/Metric_8cxx__incl.md5 b/Metric_8cxx__incl.md5 new file mode 100644 index 000000000..5b3aeb333 --- /dev/null +++ b/Metric_8cxx__incl.md5 @@ -0,0 +1 @@ +4844306e6412ee06af3c30a6d07bfff0 \ No newline at end of file diff --git a/Metric_8cxx__incl.svg b/Metric_8cxx__incl.svg new file mode 100644 index 000000000..940dd44c6 --- /dev/null +++ b/Metric_8cxx__incl.svg @@ -0,0 +1,135 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Metric.cxx + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Metric.cxx + + +Node2 + + +Monitoring/Metric.h + + + + +Node1->Node2 + + + + +Node4 + +chrono + + +Node1->Node4 + + + + +Node10 + +iostream + + +Node1->Node10 + + + + +Node11 + +memory + + +Node1->Node11 + + + + +Node3 + +string + + +Node2->Node3 + + + + +Node2->Node4 + + + + +Node5 + +map + + +Node2->Node5 + + + + +Node6 + +regex + + +Node2->Node6 + + + + +Node7 + +variant + + +Node2->Node7 + + + + +Node8 + +vector + + +Node2->Node8 + + + + +Node9 + + +Tags.h + + + + +Node2->Node9 + + + + +Node9->Node3 + + + + + diff --git a/Metric_8h.html b/Metric_8h.html new file mode 100644 index 000000000..1b7c8fbd5 --- /dev/null +++ b/Metric_8h.html @@ -0,0 +1,182 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/include/Monitoring/Metric.h File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Metric.h File Reference
+
+
+
#include <string>
+#include <chrono>
+#include <map>
+#include <regex>
+#include <variant>
+#include <vector>
+#include "Tags.h"
+
+Include dependency graph for Metric.h:
+
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  o2::monitoring::Metric
 Represents a metric including value, type of the value, name, timestamp and tags. More...
 
+ + + + +

+Namespaces

 o2::monitoring
 ALICE O2 Monitoring system.
 
+ + + + + + + +

+Enumerations

enum  o2::monitoring::Verbosity : short { Prod, +Info, +Debug + }
 Metric and Backedn verbosity.
 
enum  o2::monitoring::MetricType { INT = 0, +STRING = 1, +DOUBLE = 2, +UINT64_T = 3 + }
 Metric types.
 
+

Detailed Description

+
+
+ + + + diff --git a/Metric_8h.js b/Metric_8h.js new file mode 100644 index 000000000..bd61ad1b4 --- /dev/null +++ b/Metric_8h.js @@ -0,0 +1,15 @@ +var Metric_8h = +[ + [ "Metric", "classo2_1_1monitoring_1_1Metric.html", "classo2_1_1monitoring_1_1Metric" ], + [ "MetricType", "Metric_8h.html#aec92be89e539614c82f3e7ecacfd2b41", [ + [ "INT", "Metric_8h.html#aec92be89e539614c82f3e7ecacfd2b41a983adb7781bd274f1c71f0fda75aa5a7", null ], + [ "STRING", "Metric_8h.html#aec92be89e539614c82f3e7ecacfd2b41a17f9e8e2e7825812a7f6701ea5595706", null ], + [ "DOUBLE", "Metric_8h.html#aec92be89e539614c82f3e7ecacfd2b41aeb05029368d0668f552150d04de2cf46", null ], + [ "UINT64_T", "Metric_8h.html#aec92be89e539614c82f3e7ecacfd2b41a9ea7dbbade1196ac75b7b8d94a7c4c32", null ] + ] ], + [ "Verbosity", "Metric_8h.html#abf0810ae9fea21eeca7481815f70f22f", [ + [ "Prod", "Metric_8h.html#abf0810ae9fea21eeca7481815f70f22fa362a33c23b08e4a32a4ec53fbb82cccd", null ], + [ "Info", "Metric_8h.html#abf0810ae9fea21eeca7481815f70f22fa4059b0251f66a18cb56f544728796875", null ], + [ "Debug", "Metric_8h.html#abf0810ae9fea21eeca7481815f70f22faa603905470e2a5b8c13e96b579ef0dba", null ] + ] ] +]; \ No newline at end of file diff --git a/Metric_8h__dep__incl.dot b/Metric_8h__dep__incl.dot new file mode 100644 index 000000000..da1ebe266 --- /dev/null +++ b/Metric_8h__dep__incl.dot @@ -0,0 +1,84 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/include/Monitoring/Metric.h" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/include/Monitoring/Metric.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/include/Monitoring/Backend.h",height=0.2,width=0.4,color="black",URL="$Backend_8h.html"]; + Node2 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/include/Monitoring/Monitoring.h",height=0.2,width=0.4,color="black",URL="$Monitoring_8h.html"]; + Node3 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/include/Monitoring/Monitoring\lFactory.h",height=0.2,width=0.4,color="black",URL="$MonitoringFactory_8h.html"]; + Node4 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/1-Basic.cxx",height=0.2,width=0.4,color="black",URL="$1-Basic_8cxx.html"]; + Node4 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/10-Buffering.cxx",height=0.2,width=0.4,color="black",URL="$10-Buffering_8cxx.html"]; + Node4 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/2-TaggedMetrics.cxx",height=0.2,width=0.4,color="black",URL="$2-TaggedMetrics_8cxx.html"]; + Node4 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/3-Verbosity.cxx",height=0.2,width=0.4,color="grey75"]; + Node4 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/4-RateDerivedMetric.cxx",height=0.2,width=0.4,color="black",URL="$4-RateDerivedMetric_8cxx.html"]; + Node4 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/5-Benchmark.cxx",height=0.2,width=0.4,color="black",URL="$5-Benchmark_8cxx.html"]; + Node4 -> Node11 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/6-Increment.cxx",height=0.2,width=0.4,color="black",URL="$6-Increment_8cxx.html"]; + Node4 -> Node12 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/7-InternalBenchamrk.cxx",height=0.2,width=0.4,color="grey75"]; + Node4 -> Node13 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/8-DbFiller.cxx",height=0.2,width=0.4,color="black",URL="$8-DbFiller_8cxx.html"]; + Node4 -> Node14 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/MonitoringFactory.cxx",height=0.2,width=0.4,color="black",URL="$MonitoringFactory_8cxx.html"]; + Node4 -> Node15 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testApMon.cxx",height=0.2,width=0.4,color="grey75"]; + Node4 -> Node16 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node16 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testInfluxDb.cxx",height=0.2,width=0.4,color="grey75"]; + Node4 -> Node17 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node17 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testMonitoring.cxx",height=0.2,width=0.4,color="grey75"]; + Node4 -> Node18 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node18 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testMonitoringFactory.cxx",height=0.2,width=0.4,color="grey75"]; + Node4 -> Node19 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testProcessMonitor.cxx",height=0.2,width=0.4,color="grey75"]; + Node4 -> Node20 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testThreads.cxx",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node21 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node21 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Monitoring.cxx",height=0.2,width=0.4,color="black",URL="$Monitoring_8cxx.html"]; + Node2 -> Node22 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node22 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Backends/ApMonBackend.h",height=0.2,width=0.4,color="black",URL="$ApMonBackend_8h.html"]; + Node22 -> Node23 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node23 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Backends/ApMonBackend.cxx",height=0.2,width=0.4,color="black",URL="$ApMonBackend_8cxx.html"]; + Node2 -> Node24 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node24 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Backends/InfluxDB.h",height=0.2,width=0.4,color="black",URL="$InfluxDB_8h.html"]; + Node24 -> Node25 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node25 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Backends/InfluxDB.cxx",height=0.2,width=0.4,color="black",URL="$InfluxDB_8cxx.html"]; + Node24 -> Node14 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 -> Node26 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node26 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Backends/Noop.h",height=0.2,width=0.4,color="black",URL="$Noop_8h.html"]; + Node26 -> Node14 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node26 -> Node27 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node27 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testNoop.cxx",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node28 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node28 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Backends/StdOut.h",height=0.2,width=0.4,color="black",URL="$Backends_2StdOut_8h_source.html"]; + Node28 -> Node29 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node29 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Backends/StdOut.cxx",height=0.2,width=0.4,color="grey75"]; + Node28 -> Node14 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node30 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node30 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/include/Monitoring/DerivedMetrics.h",height=0.2,width=0.4,color="black",URL="$DerivedMetrics_8h.html"]; + Node30 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node30 -> Node31 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node31 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/DerivedMetrics.cxx",height=0.2,width=0.4,color="black",URL="$DerivedMetrics_8cxx.html"]; + Node30 -> Node32 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node32 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testDerived.cxx",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node33 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node33 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/include/Monitoring/ProcessMonitor.h",height=0.2,width=0.4,color="black",URL="$ProcessMonitor_8h.html"]; + Node33 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node33 -> Node34 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node34 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/ProcessMonitor.cxx",height=0.2,width=0.4,color="black",URL="$ProcessMonitor_8cxx.html"]; + Node33 -> Node19 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node35 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node35 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Metric.cxx",height=0.2,width=0.4,color="black",URL="$Metric_8cxx.html"]; + Node1 -> Node36 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node36 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testMetric.cxx",height=0.2,width=0.4,color="grey75"]; +} diff --git a/Metric_8h__dep__incl.map b/Metric_8h__dep__incl.map new file mode 100644 index 000000000..03ed456bc --- /dev/null +++ b/Metric_8h__dep__incl.map @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Metric_8h__dep__incl.md5 b/Metric_8h__dep__incl.md5 new file mode 100644 index 000000000..9fe5a7b07 --- /dev/null +++ b/Metric_8h__dep__incl.md5 @@ -0,0 +1 @@ +270ef340da27d8d4e905dc1e1ef8b341 \ No newline at end of file diff --git a/Metric_8h__dep__incl.svg b/Metric_8h__dep__incl.svg new file mode 100644 index 000000000..c116aee45 --- /dev/null +++ b/Metric_8h__dep__incl.svg @@ -0,0 +1,627 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/home/travis/build/AliceO2Group/Monitoring/include/Monitoring/Metric.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Metric.h + + +Node2 + + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Backend.h + + + + +Node1->Node2 + + + + +Node30 + + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/DerivedMetrics.h + + + + +Node1->Node30 + + + + +Node33 + + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/ProcessMonitor.h + + + + +Node1->Node33 + + + + +Node35 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Metric.cxx + + + + +Node1->Node35 + + + + +Node36 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testMetric.cxx + + +Node1->Node36 + + + + +Node3 + + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Monitoring.h + + + + +Node2->Node3 + + + + +Node22 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/ApMonBackend.h + + + + +Node2->Node22 + + + + +Node24 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/InfluxDB.h + + + + +Node2->Node24 + + + + +Node26 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/Noop.h + + + + +Node2->Node26 + + + + +Node28 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/StdOut.h + + + + +Node2->Node28 + + + + +Node4 + + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Monitoring +Factory.h + + + + +Node3->Node4 + + + + +Node21 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Monitoring.cxx + + + + +Node3->Node21 + + + + +Node5 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/1-Basic.cxx + + + + +Node4->Node5 + + + + +Node6 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/10-Buffering.cxx + + + + +Node4->Node6 + + + + +Node7 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/2-TaggedMetrics.cxx + + + + +Node4->Node7 + + + + +Node8 + +/home/travis/build +/AliceO2Group/Monitoring +/examples/3-Verbosity.cxx + + +Node4->Node8 + + + + +Node9 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/4-RateDerivedMetric.cxx + + + + +Node4->Node9 + + + + +Node10 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/5-Benchmark.cxx + + + + +Node4->Node10 + + + + +Node11 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/6-Increment.cxx + + + + +Node4->Node11 + + + + +Node12 + +/home/travis/build +/AliceO2Group/Monitoring +/examples/7-InternalBenchamrk.cxx + + +Node4->Node12 + + + + +Node13 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/8-DbFiller.cxx + + + + +Node4->Node13 + + + + +Node14 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/MonitoringFactory.cxx + + + + +Node4->Node14 + + + + +Node15 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testApMon.cxx + + +Node4->Node15 + + + + +Node16 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testInfluxDb.cxx + + +Node4->Node16 + + + + +Node17 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testMonitoring.cxx + + +Node4->Node17 + + + + +Node18 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testMonitoringFactory.cxx + + +Node4->Node18 + + + + +Node19 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testProcessMonitor.cxx + + +Node4->Node19 + + + + +Node20 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testThreads.cxx + + +Node4->Node20 + + + + +Node23 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/ApMonBackend.cxx + + + + +Node22->Node23 + + + + +Node24->Node14 + + + + +Node25 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/InfluxDB.cxx + + + + +Node24->Node25 + + + + +Node26->Node14 + + + + +Node27 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testNoop.cxx + + +Node26->Node27 + + + + +Node28->Node14 + + + + +Node29 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/StdOut.cxx + + +Node28->Node29 + + + + +Node30->Node3 + + + + +Node31 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/DerivedMetrics.cxx + + + + +Node30->Node31 + + + + +Node32 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testDerived.cxx + + +Node30->Node32 + + + + +Node33->Node3 + + + + +Node33->Node19 + + + + +Node34 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/ProcessMonitor.cxx + + + + +Node33->Node34 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Metric_8h__dep__incl_org.svg b/Metric_8h__dep__incl_org.svg new file mode 100644 index 000000000..4ecd16dcb --- /dev/null +++ b/Metric_8h__dep__incl_org.svg @@ -0,0 +1,539 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/include/Monitoring/Metric.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Metric.h + + +Node2 + + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Backend.h + + + + +Node1->Node2 + + + + +Node30 + + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/DerivedMetrics.h + + + + +Node1->Node30 + + + + +Node33 + + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/ProcessMonitor.h + + + + +Node1->Node33 + + + + +Node35 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Metric.cxx + + + + +Node1->Node35 + + + + +Node36 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testMetric.cxx + + +Node1->Node36 + + + + +Node3 + + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Monitoring.h + + + + +Node2->Node3 + + + + +Node22 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/ApMonBackend.h + + + + +Node2->Node22 + + + + +Node24 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/InfluxDB.h + + + + +Node2->Node24 + + + + +Node26 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/Noop.h + + + + +Node2->Node26 + + + + +Node28 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/StdOut.h + + + + +Node2->Node28 + + + + +Node4 + + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Monitoring +Factory.h + + + + +Node3->Node4 + + + + +Node21 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Monitoring.cxx + + + + +Node3->Node21 + + + + +Node5 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/1-Basic.cxx + + + + +Node4->Node5 + + + + +Node6 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/10-Buffering.cxx + + + + +Node4->Node6 + + + + +Node7 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/2-TaggedMetrics.cxx + + + + +Node4->Node7 + + + + +Node8 + +/home/travis/build +/AliceO2Group/Monitoring +/examples/3-Verbosity.cxx + + +Node4->Node8 + + + + +Node9 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/4-RateDerivedMetric.cxx + + + + +Node4->Node9 + + + + +Node10 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/5-Benchmark.cxx + + + + +Node4->Node10 + + + + +Node11 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/6-Increment.cxx + + + + +Node4->Node11 + + + + +Node12 + +/home/travis/build +/AliceO2Group/Monitoring +/examples/7-InternalBenchamrk.cxx + + +Node4->Node12 + + + + +Node13 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/8-DbFiller.cxx + + + + +Node4->Node13 + + + + +Node14 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/MonitoringFactory.cxx + + + + +Node4->Node14 + + + + +Node15 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testApMon.cxx + + +Node4->Node15 + + + + +Node16 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testInfluxDb.cxx + + +Node4->Node16 + + + + +Node17 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testMonitoring.cxx + + +Node4->Node17 + + + + +Node18 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testMonitoringFactory.cxx + + +Node4->Node18 + + + + +Node19 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testProcessMonitor.cxx + + +Node4->Node19 + + + + +Node20 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testThreads.cxx + + +Node4->Node20 + + + + +Node23 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/ApMonBackend.cxx + + + + +Node22->Node23 + + + + +Node24->Node14 + + + + +Node25 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/InfluxDB.cxx + + + + +Node24->Node25 + + + + +Node26->Node14 + + + + +Node27 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testNoop.cxx + + +Node26->Node27 + + + + +Node28->Node14 + + + + +Node29 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/StdOut.cxx + + +Node28->Node29 + + + + +Node30->Node3 + + + + +Node31 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/DerivedMetrics.cxx + + + + +Node30->Node31 + + + + +Node32 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testDerived.cxx + + +Node30->Node32 + + + + +Node33->Node3 + + + + +Node33->Node19 + + + + +Node34 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/ProcessMonitor.cxx + + + + +Node33->Node34 + + + + + diff --git a/Metric_8h__incl.dot b/Metric_8h__incl.dot new file mode 100644 index 000000000..7924ebe29 --- /dev/null +++ b/Metric_8h__incl.dot @@ -0,0 +1,23 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/include/Monitoring/Metric.h" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/include/Monitoring/Metric.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="string",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="chrono",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="map",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="regex",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="variant",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="vector",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="Tags.h",height=0.2,width=0.4,color="black",URL="$Tags_8h.html"]; + Node8 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/Metric_8h__incl.map b/Metric_8h__incl.map new file mode 100644 index 000000000..903aa4f9e --- /dev/null +++ b/Metric_8h__incl.map @@ -0,0 +1,3 @@ + + + diff --git a/Metric_8h__incl.md5 b/Metric_8h__incl.md5 new file mode 100644 index 000000000..483eb6e62 --- /dev/null +++ b/Metric_8h__incl.md5 @@ -0,0 +1 @@ +dc7ad5a38632a03f3bff70b7fa7e9977 \ No newline at end of file diff --git a/Metric_8h__incl.svg b/Metric_8h__incl.svg new file mode 100644 index 000000000..0b6f90052 --- /dev/null +++ b/Metric_8h__incl.svg @@ -0,0 +1,97 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/include/Monitoring/Metric.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Metric.h + + +Node2 + +string + + +Node1->Node2 + + + + +Node3 + +chrono + + +Node1->Node3 + + + + +Node4 + +map + + +Node1->Node4 + + + + +Node5 + +regex + + +Node1->Node5 + + + + +Node6 + +variant + + +Node1->Node6 + + + + +Node7 + +vector + + +Node1->Node7 + + + + +Node8 + + +Tags.h + + + + +Node1->Node8 + + + + +Node8->Node2 + + + + + diff --git a/Metric_8h_source.html b/Metric_8h_source.html new file mode 100644 index 000000000..48e2ebc32 --- /dev/null +++ b/Metric_8h_source.html @@ -0,0 +1,141 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/include/Monitoring/Metric.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Metric.h
+
+
+Go to the documentation of this file.
1 
6 #ifndef ALICEO2_MONITORING_CORE_METRIC_H
7 #define ALICEO2_MONITORING_CORE_METRIC_H
8 
9 #include <string>
10 #include <chrono>
11 #include <map>
12 #include <regex>
13 #include <variant>
14 #include <vector>
15 #include "Tags.h"
16 
17 namespace o2
18 {
20 namespace monitoring
21 {
22 
24 enum class Verbosity : short { Prod,
25  Info,
26  Debug };
27 
29 enum MetricType { INT = 0,
30  STRING = 1,
31  DOUBLE = 2,
32  UINT64_T = 3 };
33 
34 class DerivedMetrics;
35 
37 class Metric
38 {
39  public:
43  Metric(int value, const std::string& name, Verbosity verbosity = Metric::DefaultVerbosity);
44 
48  Metric(std::string value, const std::string& name, Verbosity verbosity = Metric::DefaultVerbosity);
49 
53  Metric(double value, const std::string& name, Verbosity verbosity = Metric::DefaultVerbosity);
54 
58  Metric(uint64_t value, const std::string& name, Verbosity verbosity = Metric::DefaultVerbosity);
59 
62  Metric(const std::string& name, Verbosity verbosity = Metric::DefaultVerbosity, const std::chrono::time_point<std::chrono::system_clock>& timestamp = Metric::getCurrentTimestamp());
63 
67  Metric&& addValue(int value, const std::string& name);
68 
72  Metric&& addValue(double value, const std::string& name);
73 
77  Metric&& addValue(uint64_t value, const std::string& name);
78 
82  Metric&& addValue(std::string value, const std::string& name);
83 
87  Metric&& addValue(const std::variant<int, std::string, double, uint64_t>& value, const std::string& name);
88 
90  ~Metric() = default;
91 
94  const std::string& getName() const;
95 
98  std::chrono::time_point<std::chrono::system_clock> getTimestamp() const;
99 
102  const std::vector<std::pair<std::string, std::variant<int, std::string, double, uint64_t>>>& getValues() const;
103 
106  const std::pair<std::string, std::variant<int, std::string, double, uint64_t>>& getFirstValue() const;
107 
109  std::size_t getValuesSize() const noexcept;
110 
113  const std::vector<std::pair<int, int>>& getTags() const;
114 
119  Metric&& addTag(tags::Key key, tags::Value value);
120 
125  Metric&& addTag(tags::Key key, unsigned short int number);
126 
128  Verbosity getVerbosity();
129 
132  static auto getCurrentTimestamp() -> decltype(std::chrono::system_clock::now());
133 
135  static void setDefaultVerbosity(Verbosity verbosity);
136 
139 
141  static void setVerbosityPolicy(Verbosity verbosity, const std::regex& regex);
142 
144  static bool includeTimestamp;
145 
147  int getFirstValueType() const;
148 
149  protected:
152 
154  Metric&& setTags(std::vector<std::pair<int, int>>&& tags);
155 
157  std::vector<std::pair<std::string, std::variant<int, std::string, double, uint64_t>>> mValues;
158 
160  std::string mName;
161 
163  std::chrono::time_point<std::chrono::system_clock> mTimestamp;
164 
166  std::vector<std::pair<int, int>> mTags;
167 
170 
172  static std::map<std::underlying_type<Verbosity>::type, std::regex> mRegexPolicy;
173 
175  void overwriteVerbosity();
176 
178  static constexpr char mDefaultValueName[] = "value";
179 };
180 
181 } // namespace monitoring
182 } // namespace o2
183 
184 #endif // ALICEO2_MONITORING_CORE_METRIC_H
static auto getCurrentTimestamp() -> decltype(std::chrono::system_clock::now())
Definition: Metric.cxx:137
+
Definition: Backend.h:23
+
std::string mName
Metric name.
Definition: Metric.h:160
+
std::vector< std::pair< int, int > > mTags
Metric tags.
Definition: Metric.h:166
+
MetricType
Metric types.
Definition: Metric.h:29
+
static bool includeTimestamp
Whether timestamp should be included or not.
Definition: Metric.h:144
+
Verbosity
Metric and Backedn verbosity.
Definition: Metric.h:24
+
Enables Calculation of derived metrics.
Definition: DerivedMetrics.h:41
+
Represents a metric including value, type of the value, name, timestamp and tags. ...
Definition: Metric.h:37
+
static std::map< std::underlying_type< Verbosity >::type, std::regex > mRegexPolicy
Regex policy map.
Definition: Metric.h:172
+
static Verbosity DefaultVerbosity
Default metric verbosity.
Definition: Metric.h:138
+
std::chrono::time_point< std::chrono::system_clock > mTimestamp
Metric timestamp.
Definition: Metric.h:163
+
Verbosity mVerbosity
Metric verbosity.
Definition: Metric.h:169
+ +
std::vector< std::pair< std::string, std::variant< int, std::string, double, uint64_t > > > mValues
Metric values.
Definition: Metric.h:157
+
+
+ + + + diff --git a/MonLogger_8h.html b/MonLogger_8h.html new file mode 100644 index 000000000..b4806654c --- /dev/null +++ b/MonLogger_8h.html @@ -0,0 +1,171 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/MonLogger.h File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
MonLogger.h File Reference
+
+
+
#include <chrono>
+#include <iomanip>
+#include <iostream>
+
+Include dependency graph for MonLogger.h:
+
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  o2::monitoring::MonLogger
 Simple Monitoring logging class. More...
 
+ + + + +

+Namespaces

 o2::monitoring
 ALICE O2 Monitoring system.
 
+ + + + +

+Enumerations

enum  o2::monitoring::Severity { Error = 31, +Warn = 33, +Info = 49 + }
 List of possible log severities.
 
+

Detailed Description

+
+
+ + + + diff --git a/MonLogger_8h.js b/MonLogger_8h.js new file mode 100644 index 000000000..3498ba60e --- /dev/null +++ b/MonLogger_8h.js @@ -0,0 +1,9 @@ +var MonLogger_8h = +[ + [ "MonLogger", "classo2_1_1monitoring_1_1MonLogger.html", "classo2_1_1monitoring_1_1MonLogger" ], + [ "Severity", "MonLogger_8h.html#a9c3243d9bf6bfe95bef20e2c6b4e4880", [ + [ "Error", "MonLogger_8h.html#a9c3243d9bf6bfe95bef20e2c6b4e4880a902b0d55fddef6f8d651fe1035b7d4bd", null ], + [ "Warn", "MonLogger_8h.html#a9c3243d9bf6bfe95bef20e2c6b4e4880a56525ae64d370c0b448ac0d60710ef17", null ], + [ "Info", "MonLogger_8h.html#a9c3243d9bf6bfe95bef20e2c6b4e4880a4059b0251f66a18cb56f544728796875", null ] + ] ] +]; \ No newline at end of file diff --git a/MonLogger_8h__dep__incl.dot b/MonLogger_8h__dep__incl.dot new file mode 100644 index 000000000..8ebf42b2f --- /dev/null +++ b/MonLogger_8h__dep__incl.dot @@ -0,0 +1,35 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/src/MonLogger.h" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/MonLogger.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Backends/ApMonBackend.cxx",height=0.2,width=0.4,color="black",URL="$ApMonBackend_8cxx.html"]; + Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Backends/InfluxDB.h",height=0.2,width=0.4,color="black",URL="$InfluxDB_8h.html"]; + Node3 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Backends/InfluxDB.cxx",height=0.2,width=0.4,color="black",URL="$InfluxDB_8cxx.html"]; + Node3 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/MonitoringFactory.cxx",height=0.2,width=0.4,color="black",URL="$MonitoringFactory_8cxx.html"]; + Node1 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Backends/StdOut.cxx",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Exceptions/MonitoringException.cxx",height=0.2,width=0.4,color="black",URL="$MonitoringException_8cxx.html"]; + Node1 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Monitoring.cxx",height=0.2,width=0.4,color="black",URL="$Monitoring_8cxx.html"]; + Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/ProcessMonitor.cxx",height=0.2,width=0.4,color="black",URL="$ProcessMonitor_8cxx.html"]; + Node1 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Transports/HTTP.cxx",height=0.2,width=0.4,color="black",URL="$HTTP_8cxx.html"]; + Node1 -> Node11 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Transports/Kafka.cxx",height=0.2,width=0.4,color="black",URL="$Kafka_8cxx.html"]; + Node1 -> Node12 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Transports/TCP.cxx",height=0.2,width=0.4,color="black",URL="$TCP_8cxx.html"]; + Node1 -> Node13 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Transports/UDP.cxx",height=0.2,width=0.4,color="black",URL="$UDP_8cxx.html"]; + Node1 -> Node14 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Transports/Unix.cxx",height=0.2,width=0.4,color="black",URL="$Unix_8cxx.html"]; +} diff --git a/MonLogger_8h__dep__incl.map b/MonLogger_8h__dep__incl.map new file mode 100644 index 000000000..702e1c6cd --- /dev/null +++ b/MonLogger_8h__dep__incl.map @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/MonLogger_8h__dep__incl.md5 b/MonLogger_8h__dep__incl.md5 new file mode 100644 index 000000000..2979f2ce4 --- /dev/null +++ b/MonLogger_8h__dep__incl.md5 @@ -0,0 +1 @@ +9fb6d037a8c8e0b7eee239d1639ef8ac \ No newline at end of file diff --git a/MonLogger_8h__dep__incl.svg b/MonLogger_8h__dep__incl.svg new file mode 100644 index 000000000..2798e4798 --- /dev/null +++ b/MonLogger_8h__dep__incl.svg @@ -0,0 +1,304 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/MonLogger.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/MonLogger.h + + +Node2 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/ApMonBackend.cxx + + + + +Node1->Node2 + + + + +Node3 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/InfluxDB.h + + + + +Node1->Node3 + + + + +Node5 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/MonitoringFactory.cxx + + + + +Node1->Node5 + + + + +Node6 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/StdOut.cxx + + +Node1->Node6 + + + + +Node7 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Exceptions/MonitoringException.cxx + + + + +Node1->Node7 + + + + +Node8 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Monitoring.cxx + + + + +Node1->Node8 + + + + +Node9 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/ProcessMonitor.cxx + + + + +Node1->Node9 + + + + +Node10 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/HTTP.cxx + + + + +Node1->Node10 + + + + +Node11 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/Kafka.cxx + + + + +Node1->Node11 + + + + +Node12 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/TCP.cxx + + + + +Node1->Node12 + + + + +Node13 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/UDP.cxx + + + + +Node1->Node13 + + + + +Node14 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/Unix.cxx + + + + +Node1->Node14 + + + + +Node4 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/InfluxDB.cxx + + + + +Node3->Node4 + + + + +Node3->Node5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/MonLogger_8h__dep__incl_org.svg b/MonLogger_8h__dep__incl_org.svg new file mode 100644 index 000000000..73b5245d7 --- /dev/null +++ b/MonLogger_8h__dep__incl_org.svg @@ -0,0 +1,216 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/MonLogger.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/MonLogger.h + + +Node2 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/ApMonBackend.cxx + + + + +Node1->Node2 + + + + +Node3 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/InfluxDB.h + + + + +Node1->Node3 + + + + +Node5 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/MonitoringFactory.cxx + + + + +Node1->Node5 + + + + +Node6 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/StdOut.cxx + + +Node1->Node6 + + + + +Node7 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Exceptions/MonitoringException.cxx + + + + +Node1->Node7 + + + + +Node8 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Monitoring.cxx + + + + +Node1->Node8 + + + + +Node9 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/ProcessMonitor.cxx + + + + +Node1->Node9 + + + + +Node10 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/HTTP.cxx + + + + +Node1->Node10 + + + + +Node11 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/Kafka.cxx + + + + +Node1->Node11 + + + + +Node12 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/TCP.cxx + + + + +Node1->Node12 + + + + +Node13 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/UDP.cxx + + + + +Node1->Node13 + + + + +Node14 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/Unix.cxx + + + + +Node1->Node14 + + + + +Node4 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/InfluxDB.cxx + + + + +Node3->Node4 + + + + +Node3->Node5 + + + + + diff --git a/MonLogger_8h__incl.dot b/MonLogger_8h__incl.dot new file mode 100644 index 000000000..4895041f3 --- /dev/null +++ b/MonLogger_8h__incl.dot @@ -0,0 +1,14 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/src/MonLogger.h" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/MonLogger.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="chrono",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="iomanip",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="iostream",height=0.2,width=0.4,color="grey75"]; +} diff --git a/MonLogger_8h__incl.map b/MonLogger_8h__incl.map new file mode 100644 index 000000000..deb73cef1 --- /dev/null +++ b/MonLogger_8h__incl.map @@ -0,0 +1,2 @@ + + diff --git a/MonLogger_8h__incl.md5 b/MonLogger_8h__incl.md5 new file mode 100644 index 000000000..503cf12a3 --- /dev/null +++ b/MonLogger_8h__incl.md5 @@ -0,0 +1 @@ +74edf9286383af9864155f1532ad3cd0 \ No newline at end of file diff --git a/MonLogger_8h__incl.svg b/MonLogger_8h__incl.svg new file mode 100644 index 000000000..65c455e7f --- /dev/null +++ b/MonLogger_8h__incl.svg @@ -0,0 +1,49 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/MonLogger.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/MonLogger.h + + +Node2 + +chrono + + +Node1->Node2 + + + + +Node3 + +iomanip + + +Node1->Node3 + + + + +Node4 + +iostream + + +Node1->Node4 + + + + + diff --git a/MonLogger_8h_source.html b/MonLogger_8h_source.html new file mode 100644 index 000000000..52ed6a192 --- /dev/null +++ b/MonLogger_8h_source.html @@ -0,0 +1,132 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/MonLogger.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
MonLogger.h
+
+
+Go to the documentation of this file.
1 // Copyright CERN and copyright holders of ALICE O2. This software is
2 // distributed under the terms of the GNU General Public License v3 (GPL
3 // Version 3), copied verbatim in the file "COPYING".
4 //
5 // See http://alice-o2.web.cern.ch/license for full licensing information.
6 //
7 // In applying this license CERN does not waive the privileges and immunities
8 // granted to it by virtue of its status as an Intergovernmental Organization
9 // or submit itself to any jurisdiction.
10 
15 
16 #ifndef MONITORING_MONINFOLOGGER_H
17 #define MONITORING_MONINFOLOGGER_H
18 
19 #include <chrono>
20 #include <iomanip>
21 #include <iostream>
22 
23 namespace o2
24 {
26 namespace monitoring
27 {
28 
30 enum class Severity { Error = 31,
31  Warn = 33,
32  Info = 49 };
33 
35 class MonLogger
36 {
37  public:
41  template <typename T>
42  MonLogger& operator<<(const T& log)
43  {
44  mStream << log;
45  return *this;
46  }
47 
52  static MonLogger& Get(Severity severity = Severity::Info)
53  {
54  static MonLogger loggerInstance;
55  loggerInstance.setDate();
56  loggerInstance.setSeverity(severity);
57  return loggerInstance;
58  }
59 
62  static auto End() -> decltype("\033[0m\n")
63  {
64  return "\033[0m\n";
65  }
66 
67  private:
69  std::ostream& mStream;
70 
72  MonLogger(std::ostream& oStream = std::cout) : mStream(oStream)
73  {
74  }
75 
77  void setDate()
78  {
79  auto now = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now());
80  mStream << std::put_time(std::localtime(&now), "%Y-%m-%d %X") << "\t";
81  }
82 
85  void setSeverity(Severity severity)
86  {
87  mStream << "\033[1;" << static_cast<int>(severity) << "m";
88  }
89 
91  MonLogger& operator=(const MonLogger&) = delete;
92  MonLogger(const MonLogger&) = delete;
93  MonLogger(MonLogger&&) = delete;
94  MonLogger& operator=(MonLogger&&) = delete;
95 };
96 
97 } // namespace monitoring
98 } // namespace o2
99 
100 #endif //MONITORING_MONINFOLOGGER_H
static auto End() -> decltype("\033[0m\n")
Definition: MonLogger.h:62
+
Definition: Backend.h:23
+
Simple Monitoring logging class.
Definition: MonLogger.h:35
+
Severity
List of possible log severities.
Definition: MonLogger.h:30
+
MonLogger & operator<<(const T &log)
Definition: MonLogger.h:42
+
static MonLogger & Get(Severity severity=Severity::Info)
Definition: MonLogger.h:52
+
+
+ + + + diff --git a/MonitoringException_8cxx.html b/MonitoringException_8cxx.html new file mode 100644 index 000000000..1cc567b52 --- /dev/null +++ b/MonitoringException_8cxx.html @@ -0,0 +1,145 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/Exceptions/MonitoringException.cxx File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
MonitoringException.cxx File Reference
+
+
+
#include "MonitoringException.h"
+#include "../MonLogger.h"
+
+Include dependency graph for MonitoringException.cxx:
+
+
+
+
+
+ + + + +

+Namespaces

 o2::monitoring
 ALICE O2 Monitoring system.
 
+

Detailed Description

+
+
+ + + + diff --git a/MonitoringException_8cxx__incl.dot b/MonitoringException_8cxx__incl.dot new file mode 100644 index 000000000..9dfd0671c --- /dev/null +++ b/MonitoringException_8cxx__incl.dot @@ -0,0 +1,22 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/src/Exceptions/MonitoringException.cxx" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Exceptions/MonitoringException.cxx",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="MonitoringException.h",height=0.2,width=0.4,color="black",URL="$MonitoringException_8h.html"]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="exception",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="string",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="../MonLogger.h",height=0.2,width=0.4,color="black",URL="$MonLogger_8h.html"]; + Node5 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="chrono",height=0.2,width=0.4,color="grey75"]; + Node5 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="iomanip",height=0.2,width=0.4,color="grey75"]; + Node5 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="iostream",height=0.2,width=0.4,color="grey75"]; +} diff --git a/MonitoringException_8cxx__incl.map b/MonitoringException_8cxx__incl.map new file mode 100644 index 000000000..d995b279e --- /dev/null +++ b/MonitoringException_8cxx__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/MonitoringException_8cxx__incl.md5 b/MonitoringException_8cxx__incl.md5 new file mode 100644 index 000000000..cbd9ed5a1 --- /dev/null +++ b/MonitoringException_8cxx__incl.md5 @@ -0,0 +1 @@ +06560ee948ebec5b97b19f900a3b0b9b \ No newline at end of file diff --git a/MonitoringException_8cxx__incl.svg b/MonitoringException_8cxx__incl.svg new file mode 100644 index 000000000..a4656cf1d --- /dev/null +++ b/MonitoringException_8cxx__incl.svg @@ -0,0 +1,95 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Exceptions/MonitoringException.cxx + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Exceptions/MonitoringException.cxx + + +Node2 + + +MonitoringException.h + + + + +Node1->Node2 + + + + +Node5 + + +../MonLogger.h + + + + +Node1->Node5 + + + + +Node3 + +exception + + +Node2->Node3 + + + + +Node4 + +string + + +Node2->Node4 + + + + +Node6 + +chrono + + +Node5->Node6 + + + + +Node7 + +iomanip + + +Node5->Node7 + + + + +Node8 + +iostream + + +Node5->Node8 + + + + + diff --git a/MonitoringException_8h.html b/MonitoringException_8h.html new file mode 100644 index 000000000..5f09b7abb --- /dev/null +++ b/MonitoringException_8h.html @@ -0,0 +1,160 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/Exceptions/MonitoringException.h File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
MonitoringException.h File Reference
+
+
+
#include <exception>
+#include <string>
+
+Include dependency graph for MonitoringException.h:
+
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  o2::monitoring::MonitoringException
 Internal monitoring exception. More...
 
+ + + + +

+Namespaces

 o2::monitoring
 ALICE O2 Monitoring system.
 
+

Detailed Description

+
+
+ + + + diff --git a/MonitoringException_8h__dep__incl.dot b/MonitoringException_8h__dep__incl.dot new file mode 100644 index 000000000..34a84440c --- /dev/null +++ b/MonitoringException_8h__dep__incl.dot @@ -0,0 +1,24 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/src/Exceptions/MonitoringException.h" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Exceptions/MonitoringException.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Backends/ApMonBackend.cxx",height=0.2,width=0.4,color="black",URL="$ApMonBackend_8cxx.html"]; + Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Backends/InfluxDB.cxx",height=0.2,width=0.4,color="black",URL="$InfluxDB_8cxx.html"]; + Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/DerivedMetrics.cxx",height=0.2,width=0.4,color="black",URL="$DerivedMetrics_8cxx.html"]; + Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Exceptions/MonitoringException.cxx",height=0.2,width=0.4,color="black",URL="$MonitoringException_8cxx.html"]; + Node1 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Monitoring.cxx",height=0.2,width=0.4,color="black",URL="$Monitoring_8cxx.html"]; + Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Transports/HTTP.cxx",height=0.2,width=0.4,color="black",URL="$HTTP_8cxx.html"]; + Node1 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Transports/TCP.cxx",height=0.2,width=0.4,color="black",URL="$TCP_8cxx.html"]; + Node1 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testDerived.cxx",height=0.2,width=0.4,color="grey75"]; +} diff --git a/MonitoringException_8h__dep__incl.map b/MonitoringException_8h__dep__incl.map new file mode 100644 index 000000000..061c5ff23 --- /dev/null +++ b/MonitoringException_8h__dep__incl.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/MonitoringException_8h__dep__incl.md5 b/MonitoringException_8h__dep__incl.md5 new file mode 100644 index 000000000..4b1569e20 --- /dev/null +++ b/MonitoringException_8h__dep__incl.md5 @@ -0,0 +1 @@ +029af250a5655bbc0f61832af6b3a2d6 \ No newline at end of file diff --git a/MonitoringException_8h__dep__incl.svg b/MonitoringException_8h__dep__incl.svg new file mode 100644 index 000000000..53e966f45 --- /dev/null +++ b/MonitoringException_8h__dep__incl.svg @@ -0,0 +1,224 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Exceptions/MonitoringException.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Exceptions/MonitoringException.h + + +Node2 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/ApMonBackend.cxx + + + + +Node1->Node2 + + + + +Node3 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/InfluxDB.cxx + + + + +Node1->Node3 + + + + +Node4 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/DerivedMetrics.cxx + + + + +Node1->Node4 + + + + +Node5 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Exceptions/MonitoringException.cxx + + + + +Node1->Node5 + + + + +Node6 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Monitoring.cxx + + + + +Node1->Node6 + + + + +Node7 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/HTTP.cxx + + + + +Node1->Node7 + + + + +Node8 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/TCP.cxx + + + + +Node1->Node8 + + + + +Node9 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testDerived.cxx + + +Node1->Node9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/MonitoringException_8h__dep__incl_org.svg b/MonitoringException_8h__dep__incl_org.svg new file mode 100644 index 000000000..7bb108507 --- /dev/null +++ b/MonitoringException_8h__dep__incl_org.svg @@ -0,0 +1,136 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Exceptions/MonitoringException.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Exceptions/MonitoringException.h + + +Node2 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/ApMonBackend.cxx + + + + +Node1->Node2 + + + + +Node3 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/InfluxDB.cxx + + + + +Node1->Node3 + + + + +Node4 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/DerivedMetrics.cxx + + + + +Node1->Node4 + + + + +Node5 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Exceptions/MonitoringException.cxx + + + + +Node1->Node5 + + + + +Node6 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Monitoring.cxx + + + + +Node1->Node6 + + + + +Node7 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/HTTP.cxx + + + + +Node1->Node7 + + + + +Node8 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/TCP.cxx + + + + +Node1->Node8 + + + + +Node9 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testDerived.cxx + + +Node1->Node9 + + + + + diff --git a/MonitoringException_8h__incl.dot b/MonitoringException_8h__incl.dot new file mode 100644 index 000000000..e9dc9dbd5 --- /dev/null +++ b/MonitoringException_8h__incl.dot @@ -0,0 +1,12 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/src/Exceptions/MonitoringException.h" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Exceptions/MonitoringException.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="exception",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="string",height=0.2,width=0.4,color="grey75"]; +} diff --git a/MonitoringException_8h__incl.map b/MonitoringException_8h__incl.map new file mode 100644 index 000000000..4c6207338 --- /dev/null +++ b/MonitoringException_8h__incl.map @@ -0,0 +1,2 @@ + + diff --git a/MonitoringException_8h__incl.md5 b/MonitoringException_8h__incl.md5 new file mode 100644 index 000000000..f73b014c1 --- /dev/null +++ b/MonitoringException_8h__incl.md5 @@ -0,0 +1 @@ +7aa845912e812195220fc3dc7cb4a6b0 \ No newline at end of file diff --git a/MonitoringException_8h__incl.svg b/MonitoringException_8h__incl.svg new file mode 100644 index 000000000..b20d79528 --- /dev/null +++ b/MonitoringException_8h__incl.svg @@ -0,0 +1,39 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Exceptions/MonitoringException.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Exceptions/MonitoringException.h + + +Node2 + +exception + + +Node1->Node2 + + + + +Node3 + +string + + +Node1->Node3 + + + + + diff --git a/MonitoringException_8h_source.html b/MonitoringException_8h_source.html new file mode 100644 index 000000000..5c08578d9 --- /dev/null +++ b/MonitoringException_8h_source.html @@ -0,0 +1,128 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/Exceptions/MonitoringException.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
MonitoringException.h
+
+
+Go to the documentation of this file.
1 // Copyright CERN and copyright holders of ALICE O2. This software is
2 // distributed under the terms of the GNU General Public License v3 (GPL
3 // Version 3), copied verbatim in the file "COPYING".
4 //
5 // See http://alice-o2.web.cern.ch/license for full licensing information.
6 //
7 // In applying this license CERN does not waive the privileges and immunities
8 // granted to it by virtue of its status as an Intergovernmental Organization
9 // or submit itself to any jurisdiction.
10 
15 
16 #ifndef ALICEO2_MONITORING_EXCEPTIONS_INTERNAL_MONITORING_H
17 #define ALICEO2_MONITORING_EXCEPTIONS_INTERNAL_MONITORING_H
18 
19 #include <exception>
20 #include <string>
21 
22 namespace o2
23 {
25 namespace monitoring
26 {
27 
29 class MonitoringException : public std::exception
30 {
31  public:
32  MonitoringException(const std::string& source, const std::string& message);
33  MonitoringException(int code, const std::string& source, const std::string& message);
34  ~MonitoringException() = default;
35  const char* what() const throw();
36 
37  private:
38  std::string message;
39 };
40 
41 } // namespace monitoring
42 } // namespace o2
43 
44 #endif //ALICEO2_MONITORING_EXCEPTIONS_INTERNAL_MONITORING_H
Definition: Backend.h:23
+
Internal monitoring exception.
Definition: MonitoringException.h:29
+
+
+ + + + diff --git a/MonitoringFactory_8cxx.html b/MonitoringFactory_8cxx.html new file mode 100644 index 000000000..44ad9e99a --- /dev/null +++ b/MonitoringFactory_8cxx.html @@ -0,0 +1,173 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/MonitoringFactory.cxx File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
MonitoringFactory.cxx File Reference
+
+
+
#include "Monitoring/MonitoringFactory.h"
+#include <functional>
+#include <stdexcept>
+#include <boost/algorithm/string.hpp>
+#include "MonLogger.h"
+#include "UriParser/UriParser.h"
+#include "Backends/StdOut.h"
+#include "Backends/Noop.h"
+#include "Backends/InfluxDB.h"
+#include "Transports/UDP.h"
+#include "Transports/Unix.h"
+#include "Transports/StdOut.h"
+
+Include dependency graph for MonitoringFactory.cxx:
+
+
+
+
+
+ + + + +

+Namespaces

 o2::monitoring
 ALICE O2 Monitoring system.
 
+ + + + + + + + + + + +

+Functions

+std::unique_ptr< Backend > o2::monitoring::getStdOut (http::url uri)
 
std::unique_ptr< Backend > o2::monitoring::getInfluxDbv2 (http::url uri)
 
+std::unique_ptr< Backend > o2::monitoring::getInfluxDb (http::url uri)
 
+std::unique_ptr< Backend > o2::monitoring::getApMon (http::url)
 
+std::unique_ptr< Backend > o2::monitoring::getNoop (http::url)
 
+

Detailed Description

+
+
+ + + + diff --git a/MonitoringFactory_8cxx.js b/MonitoringFactory_8cxx.js new file mode 100644 index 000000000..5f7673c76 --- /dev/null +++ b/MonitoringFactory_8cxx.js @@ -0,0 +1,8 @@ +var MonitoringFactory_8cxx = +[ + [ "getApMon", "MonitoringFactory_8cxx.html#ad77f354eba2b410559cfbbd6241ae721", null ], + [ "getInfluxDb", "MonitoringFactory_8cxx.html#a13a8066de084ad0d495e2819997ba9ad", null ], + [ "getInfluxDbv2", "MonitoringFactory_8cxx.html#a22b5140ed5a3b091a687453c219befc4", null ], + [ "getNoop", "MonitoringFactory_8cxx.html#a433f74fff6421764344d0f3fc0d65fba", null ], + [ "getStdOut", "MonitoringFactory_8cxx.html#a246110d4ad82e9d17790b5a2b0c398b7", null ] +]; \ No newline at end of file diff --git a/MonitoringFactory_8cxx__incl.dot b/MonitoringFactory_8cxx__incl.dot new file mode 100644 index 000000000..89462c78b --- /dev/null +++ b/MonitoringFactory_8cxx__incl.dot @@ -0,0 +1,126 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/src/MonitoringFactory.cxx" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/MonitoringFactory.cxx",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="Monitoring/MonitoringFactory.h",height=0.2,width=0.4,color="black",URL="$MonitoringFactory_8h.html"]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="Monitoring/Monitoring.h",height=0.2,width=0.4,color="black",URL="$Monitoring_8h.html"]; + Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="atomic",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="chrono",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="map",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="memory",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="string",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="thread",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="tuple",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="unordered_map",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="vector",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [label="deque",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 [label="Monitoring/Backend.h",height=0.2,width=0.4,color="black",URL="$Backend_8h.html"]; + Node14 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 [label="Monitoring/Metric.h",height=0.2,width=0.4,color="black",URL="$Metric_8h.html"]; + Node15 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node16 [label="regex",height=0.2,width=0.4,color="grey75"]; + Node15 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node17 [label="variant",height=0.2,width=0.4,color="grey75"]; + Node15 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node18 [label="Tags.h",height=0.2,width=0.4,color="black",URL="$Tags_8h.html"]; + Node18 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 [label="Monitoring/DerivedMetrics.h",height=0.2,width=0.4,color="black",URL="$DerivedMetrics_8h.html"]; + Node19 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 [label="Monitoring/ProcessMonitor.h",height=0.2,width=0.4,color="black",URL="$ProcessMonitor_8h.html"]; + Node20 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node21 [label="boost/algorithm/string.hpp",height=0.2,width=0.4,color="grey75"]; + Node20 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node22 [label="iostream",height=0.2,width=0.4,color="grey75"]; + Node20 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node23 [label="sys/resource.h",height=0.2,width=0.4,color="grey75"]; + Node20 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node24 [label="functional",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node25 [label="stdexcept",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node26 [label="MonLogger.h",height=0.2,width=0.4,color="black",URL="$MonLogger_8h.html"]; + Node26 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node26 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node27 [label="iomanip",height=0.2,width=0.4,color="grey75"]; + Node26 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node28 [label="UriParser/UriParser.h",height=0.2,width=0.4,color="black",URL="$UriParser_8h_source.html"]; + Node28 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node28 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node28 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node29 [label="stdlib.h",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node30 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node30 [label="Backends/StdOut.h",height=0.2,width=0.4,color="black",URL="$Backends_2StdOut_8h_source.html"]; + Node30 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node30 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node30 -> Node31 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node31 [label="sstream",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node32 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node32 [label="Backends/Noop.h",height=0.2,width=0.4,color="black",URL="$Noop_8h.html"]; + Node32 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node33 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node33 [label="Backends/InfluxDB.h",height=0.2,width=0.4,color="black",URL="$InfluxDB_8h.html"]; + Node33 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node33 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node34 [label="../Transports/TransportInterface.h",height=0.2,width=0.4,color="black",URL="$TransportInterface_8h.html"]; + Node34 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node33 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node33 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node33 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node35 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node35 [label="Transports/UDP.h",height=0.2,width=0.4,color="black",URL="$UDP_8h.html"]; + Node35 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node35 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node36 [label="boost/array.hpp",height=0.2,width=0.4,color="grey75"]; + Node35 -> Node37 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node37 [label="boost/asio.hpp",height=0.2,width=0.4,color="grey75"]; + Node35 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node35 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node35 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node38 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node38 [label="Transports/Unix.h",height=0.2,width=0.4,color="black",URL="$Unix_8h.html"]; + Node38 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node38 -> Node36 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node38 -> Node37 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node38 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node38 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node38 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node39 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node39 [label="Transports/StdOut.h",height=0.2,width=0.4,color="black",URL="$Transports_2StdOut_8h_source.html"]; + Node39 -> Node34 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node39 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node39 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/MonitoringFactory_8cxx__incl.map b/MonitoringFactory_8cxx__incl.map new file mode 100644 index 000000000..d7ab55d86 --- /dev/null +++ b/MonitoringFactory_8cxx__incl.map @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/MonitoringFactory_8cxx__incl.md5 b/MonitoringFactory_8cxx__incl.md5 new file mode 100644 index 000000000..ede695bcc --- /dev/null +++ b/MonitoringFactory_8cxx__incl.md5 @@ -0,0 +1 @@ +a711be7644c8a802cf37e5b27431e02c \ No newline at end of file diff --git a/MonitoringFactory_8cxx__incl.svg b/MonitoringFactory_8cxx__incl.svg new file mode 100644 index 000000000..8d4b081cb --- /dev/null +++ b/MonitoringFactory_8cxx__incl.svg @@ -0,0 +1,745 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/MonitoringFactory.cxx + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/MonitoringFactory.cxx + + +Node2 + + +Monitoring/MonitoringFactory.h + + + + +Node1->Node2 + + + + +Node21 + +boost/algorithm/string.hpp + + +Node1->Node21 + + + + +Node24 + +functional + + +Node1->Node24 + + + + +Node25 + +stdexcept + + +Node1->Node25 + + + + +Node26 + + +MonLogger.h + + + + +Node1->Node26 + + + + +Node28 + + +UriParser/UriParser.h + + + + +Node1->Node28 + + + + +Node30 + + +Backends/StdOut.h + + + + +Node1->Node30 + + + + +Node32 + + +Backends/Noop.h + + + + +Node1->Node32 + + + + +Node33 + + +Backends/InfluxDB.h + + + + +Node1->Node33 + + + + +Node35 + + +Transports/UDP.h + + + + +Node1->Node35 + + + + +Node38 + + +Transports/Unix.h + + + + +Node1->Node38 + + + + +Node39 + + +Transports/StdOut.h + + + + +Node1->Node39 + + + + +Node3 + + +Monitoring/Monitoring.h + + + + +Node2->Node3 + + + + +Node4 + +atomic + + +Node3->Node4 + + + + +Node5 + +chrono + + +Node3->Node5 + + + + +Node6 + +map + + +Node3->Node6 + + + + +Node7 + +memory + + +Node3->Node7 + + + + +Node8 + +string + + +Node3->Node8 + + + + +Node9 + +thread + + +Node3->Node9 + + + + +Node10 + +tuple + + +Node3->Node10 + + + + +Node11 + +unordered_map + + +Node3->Node11 + + + + +Node12 + +vector + + +Node3->Node12 + + + + +Node13 + +deque + + +Node3->Node13 + + + + +Node14 + + +Monitoring/Backend.h + + + + +Node3->Node14 + + + + +Node19 + + +Monitoring/DerivedMetrics.h + + + + +Node3->Node19 + + + + +Node20 + + +Monitoring/ProcessMonitor.h + + + + +Node3->Node20 + + + + +Node14->Node5 + + + + +Node14->Node8 + + + + +Node15 + + +Monitoring/Metric.h + + + + +Node14->Node15 + + + + +Node15->Node5 + + + + +Node15->Node6 + + + + +Node15->Node8 + + + + +Node15->Node12 + + + + +Node16 + +regex + + +Node15->Node16 + + + + +Node17 + +variant + + +Node15->Node17 + + + + +Node18 + + +Tags.h + + + + +Node15->Node18 + + + + +Node18->Node8 + + + + +Node19->Node7 + + + + +Node19->Node8 + + + + +Node19->Node11 + + + + +Node19->Node12 + + + + +Node19->Node15 + + + + +Node20->Node4 + + + + +Node20->Node8 + + + + +Node20->Node12 + + + + +Node20->Node15 + + + + +Node20->Node21 + + + + +Node22 + +iostream + + +Node20->Node22 + + + + +Node23 + +sys/resource.h + + +Node20->Node23 + + + + +Node26->Node5 + + + + +Node26->Node22 + + + + +Node27 + +iomanip + + +Node26->Node27 + + + + +Node28->Node8 + + + + +Node28->Node22 + + + + +Node29 + +stdlib.h + + +Node28->Node29 + + + + +Node30->Node8 + + + + +Node30->Node14 + + + + +Node31 + +sstream + + +Node30->Node31 + + + + +Node32->Node14 + + + + +Node33->Node5 + + + + +Node33->Node8 + + + + +Node33->Node14 + + + + +Node33->Node26 + + + + +Node34 + + +../Transports/TransportInterface.h + + + + +Node33->Node34 + + + + +Node34->Node8 + + + + +Node35->Node5 + + + + +Node35->Node8 + + + + +Node35->Node21 + + + + +Node35->Node34 + + + + +Node36 + +boost/array.hpp + + +Node35->Node36 + + + + +Node37 + +boost/asio.hpp + + +Node35->Node37 + + + + +Node38->Node5 + + + + +Node38->Node8 + + + + +Node38->Node21 + + + + +Node38->Node34 + + + + +Node38->Node36 + + + + +Node38->Node37 + + + + +Node39->Node5 + + + + +Node39->Node8 + + + + +Node39->Node34 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/MonitoringFactory_8cxx__incl_org.svg b/MonitoringFactory_8cxx__incl_org.svg new file mode 100644 index 000000000..785f2519c --- /dev/null +++ b/MonitoringFactory_8cxx__incl_org.svg @@ -0,0 +1,657 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/MonitoringFactory.cxx + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/MonitoringFactory.cxx + + +Node2 + + +Monitoring/MonitoringFactory.h + + + + +Node1->Node2 + + + + +Node21 + +boost/algorithm/string.hpp + + +Node1->Node21 + + + + +Node24 + +functional + + +Node1->Node24 + + + + +Node25 + +stdexcept + + +Node1->Node25 + + + + +Node26 + + +MonLogger.h + + + + +Node1->Node26 + + + + +Node28 + + +UriParser/UriParser.h + + + + +Node1->Node28 + + + + +Node30 + + +Backends/StdOut.h + + + + +Node1->Node30 + + + + +Node32 + + +Backends/Noop.h + + + + +Node1->Node32 + + + + +Node33 + + +Backends/InfluxDB.h + + + + +Node1->Node33 + + + + +Node35 + + +Transports/UDP.h + + + + +Node1->Node35 + + + + +Node38 + + +Transports/Unix.h + + + + +Node1->Node38 + + + + +Node39 + + +Transports/StdOut.h + + + + +Node1->Node39 + + + + +Node3 + + +Monitoring/Monitoring.h + + + + +Node2->Node3 + + + + +Node4 + +atomic + + +Node3->Node4 + + + + +Node5 + +chrono + + +Node3->Node5 + + + + +Node6 + +map + + +Node3->Node6 + + + + +Node7 + +memory + + +Node3->Node7 + + + + +Node8 + +string + + +Node3->Node8 + + + + +Node9 + +thread + + +Node3->Node9 + + + + +Node10 + +tuple + + +Node3->Node10 + + + + +Node11 + +unordered_map + + +Node3->Node11 + + + + +Node12 + +vector + + +Node3->Node12 + + + + +Node13 + +deque + + +Node3->Node13 + + + + +Node14 + + +Monitoring/Backend.h + + + + +Node3->Node14 + + + + +Node19 + + +Monitoring/DerivedMetrics.h + + + + +Node3->Node19 + + + + +Node20 + + +Monitoring/ProcessMonitor.h + + + + +Node3->Node20 + + + + +Node14->Node5 + + + + +Node14->Node8 + + + + +Node15 + + +Monitoring/Metric.h + + + + +Node14->Node15 + + + + +Node15->Node5 + + + + +Node15->Node6 + + + + +Node15->Node8 + + + + +Node15->Node12 + + + + +Node16 + +regex + + +Node15->Node16 + + + + +Node17 + +variant + + +Node15->Node17 + + + + +Node18 + + +Tags.h + + + + +Node15->Node18 + + + + +Node18->Node8 + + + + +Node19->Node7 + + + + +Node19->Node8 + + + + +Node19->Node11 + + + + +Node19->Node12 + + + + +Node19->Node15 + + + + +Node20->Node4 + + + + +Node20->Node8 + + + + +Node20->Node12 + + + + +Node20->Node15 + + + + +Node20->Node21 + + + + +Node22 + +iostream + + +Node20->Node22 + + + + +Node23 + +sys/resource.h + + +Node20->Node23 + + + + +Node26->Node5 + + + + +Node26->Node22 + + + + +Node27 + +iomanip + + +Node26->Node27 + + + + +Node28->Node8 + + + + +Node28->Node22 + + + + +Node29 + +stdlib.h + + +Node28->Node29 + + + + +Node30->Node8 + + + + +Node30->Node14 + + + + +Node31 + +sstream + + +Node30->Node31 + + + + +Node32->Node14 + + + + +Node33->Node5 + + + + +Node33->Node8 + + + + +Node33->Node14 + + + + +Node33->Node26 + + + + +Node34 + + +../Transports/TransportInterface.h + + + + +Node33->Node34 + + + + +Node34->Node8 + + + + +Node35->Node5 + + + + +Node35->Node8 + + + + +Node35->Node21 + + + + +Node35->Node34 + + + + +Node36 + +boost/array.hpp + + +Node35->Node36 + + + + +Node37 + +boost/asio.hpp + + +Node35->Node37 + + + + +Node38->Node5 + + + + +Node38->Node8 + + + + +Node38->Node21 + + + + +Node38->Node34 + + + + +Node38->Node36 + + + + +Node38->Node37 + + + + +Node39->Node5 + + + + +Node39->Node8 + + + + +Node39->Node34 + + + + + diff --git a/MonitoringFactory_8h.html b/MonitoringFactory_8h.html new file mode 100644 index 000000000..bb823e590 --- /dev/null +++ b/MonitoringFactory_8h.html @@ -0,0 +1,159 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/include/Monitoring/MonitoringFactory.h File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
MonitoringFactory.h File Reference
+
+
+
+Include dependency graph for MonitoringFactory.h:
+
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  o2::monitoring::MonitoringFactory
 Monitoring and monitoring backends factory. More...
 
+ + + + +

+Namespaces

 o2::monitoring
 ALICE O2 Monitoring system.
 
+

Detailed Description

+
+
+ + + + diff --git a/MonitoringFactory_8h__dep__incl.dot b/MonitoringFactory_8h__dep__incl.dot new file mode 100644 index 000000000..cf0d67364 --- /dev/null +++ b/MonitoringFactory_8h__dep__incl.dot @@ -0,0 +1,40 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/include/Monitoring/MonitoringFactory.h" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/include/Monitoring/Monitoring\lFactory.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/1-Basic.cxx",height=0.2,width=0.4,color="black",URL="$1-Basic_8cxx.html"]; + Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/10-Buffering.cxx",height=0.2,width=0.4,color="black",URL="$10-Buffering_8cxx.html"]; + Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/2-TaggedMetrics.cxx",height=0.2,width=0.4,color="black",URL="$2-TaggedMetrics_8cxx.html"]; + Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/3-Verbosity.cxx",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/4-RateDerivedMetric.cxx",height=0.2,width=0.4,color="black",URL="$4-RateDerivedMetric_8cxx.html"]; + Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/5-Benchmark.cxx",height=0.2,width=0.4,color="black",URL="$5-Benchmark_8cxx.html"]; + Node1 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/6-Increment.cxx",height=0.2,width=0.4,color="black",URL="$6-Increment_8cxx.html"]; + Node1 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/7-InternalBenchamrk.cxx",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/8-DbFiller.cxx",height=0.2,width=0.4,color="black",URL="$8-DbFiller_8cxx.html"]; + Node1 -> Node11 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/MonitoringFactory.cxx",height=0.2,width=0.4,color="black",URL="$MonitoringFactory_8cxx.html"]; + Node1 -> Node12 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testApMon.cxx",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node13 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testInfluxDb.cxx",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node14 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testMonitoring.cxx",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node15 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testMonitoringFactory.cxx",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node16 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node16 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testProcessMonitor.cxx",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node17 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node17 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testThreads.cxx",height=0.2,width=0.4,color="grey75"]; +} diff --git a/MonitoringFactory_8h__dep__incl.map b/MonitoringFactory_8h__dep__incl.map new file mode 100644 index 000000000..981949b6d --- /dev/null +++ b/MonitoringFactory_8h__dep__incl.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/MonitoringFactory_8h__dep__incl.md5 b/MonitoringFactory_8h__dep__incl.md5 new file mode 100644 index 000000000..0d1999ca9 --- /dev/null +++ b/MonitoringFactory_8h__dep__incl.md5 @@ -0,0 +1 @@ +636f74b42e15f68f3992026ac57beb69 \ No newline at end of file diff --git a/MonitoringFactory_8h__dep__incl.svg b/MonitoringFactory_8h__dep__incl.svg new file mode 100644 index 000000000..85865268f --- /dev/null +++ b/MonitoringFactory_8h__dep__incl.svg @@ -0,0 +1,324 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/home/travis/build/AliceO2Group/Monitoring/include/Monitoring/MonitoringFactory.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Monitoring +Factory.h + + +Node2 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/1-Basic.cxx + + + + +Node1->Node2 + + + + +Node3 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/10-Buffering.cxx + + + + +Node1->Node3 + + + + +Node4 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/2-TaggedMetrics.cxx + + + + +Node1->Node4 + + + + +Node5 + +/home/travis/build +/AliceO2Group/Monitoring +/examples/3-Verbosity.cxx + + +Node1->Node5 + + + + +Node6 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/4-RateDerivedMetric.cxx + + + + +Node1->Node6 + + + + +Node7 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/5-Benchmark.cxx + + + + +Node1->Node7 + + + + +Node8 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/6-Increment.cxx + + + + +Node1->Node8 + + + + +Node9 + +/home/travis/build +/AliceO2Group/Monitoring +/examples/7-InternalBenchamrk.cxx + + +Node1->Node9 + + + + +Node10 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/8-DbFiller.cxx + + + + +Node1->Node10 + + + + +Node11 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/MonitoringFactory.cxx + + + + +Node1->Node11 + + + + +Node12 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testApMon.cxx + + +Node1->Node12 + + + + +Node13 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testInfluxDb.cxx + + +Node1->Node13 + + + + +Node14 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testMonitoring.cxx + + +Node1->Node14 + + + + +Node15 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testMonitoringFactory.cxx + + +Node1->Node15 + + + + +Node16 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testProcessMonitor.cxx + + +Node1->Node16 + + + + +Node17 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testThreads.cxx + + +Node1->Node17 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/MonitoringFactory_8h__dep__incl_org.svg b/MonitoringFactory_8h__dep__incl_org.svg new file mode 100644 index 000000000..36ff325b8 --- /dev/null +++ b/MonitoringFactory_8h__dep__incl_org.svg @@ -0,0 +1,236 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/include/Monitoring/MonitoringFactory.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Monitoring +Factory.h + + +Node2 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/1-Basic.cxx + + + + +Node1->Node2 + + + + +Node3 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/10-Buffering.cxx + + + + +Node1->Node3 + + + + +Node4 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/2-TaggedMetrics.cxx + + + + +Node1->Node4 + + + + +Node5 + +/home/travis/build +/AliceO2Group/Monitoring +/examples/3-Verbosity.cxx + + +Node1->Node5 + + + + +Node6 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/4-RateDerivedMetric.cxx + + + + +Node1->Node6 + + + + +Node7 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/5-Benchmark.cxx + + + + +Node1->Node7 + + + + +Node8 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/6-Increment.cxx + + + + +Node1->Node8 + + + + +Node9 + +/home/travis/build +/AliceO2Group/Monitoring +/examples/7-InternalBenchamrk.cxx + + +Node1->Node9 + + + + +Node10 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/8-DbFiller.cxx + + + + +Node1->Node10 + + + + +Node11 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/MonitoringFactory.cxx + + + + +Node1->Node11 + + + + +Node12 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testApMon.cxx + + +Node1->Node12 + + + + +Node13 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testInfluxDb.cxx + + +Node1->Node13 + + + + +Node14 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testMonitoring.cxx + + +Node1->Node14 + + + + +Node15 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testMonitoringFactory.cxx + + +Node1->Node15 + + + + +Node16 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testProcessMonitor.cxx + + +Node1->Node16 + + + + +Node17 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testThreads.cxx + + +Node1->Node17 + + + + + diff --git a/MonitoringFactory_8h__incl.dot b/MonitoringFactory_8h__incl.dot new file mode 100644 index 000000000..9141a3d92 --- /dev/null +++ b/MonitoringFactory_8h__incl.dot @@ -0,0 +1,66 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/include/Monitoring/MonitoringFactory.h" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/include/Monitoring/Monitoring\lFactory.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="Monitoring/Monitoring.h",height=0.2,width=0.4,color="black",URL="$Monitoring_8h.html"]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="atomic",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="chrono",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="map",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="memory",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="string",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="thread",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="tuple",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="unordered_map",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="vector",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="deque",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [label="Monitoring/Backend.h",height=0.2,width=0.4,color="black",URL="$Backend_8h.html"]; + Node13 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 [label="Monitoring/Metric.h",height=0.2,width=0.4,color="black",URL="$Metric_8h.html"]; + Node14 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 [label="regex",height=0.2,width=0.4,color="grey75"]; + Node14 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node16 [label="variant",height=0.2,width=0.4,color="grey75"]; + Node14 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node17 [label="Tags.h",height=0.2,width=0.4,color="black",URL="$Tags_8h.html"]; + Node17 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node18 [label="Monitoring/DerivedMetrics.h",height=0.2,width=0.4,color="black",URL="$DerivedMetrics_8h.html"]; + Node18 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node18 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node18 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node18 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node18 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 [label="Monitoring/ProcessMonitor.h",height=0.2,width=0.4,color="black",URL="$ProcessMonitor_8h.html"]; + Node19 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 [label="boost/algorithm/string.hpp",height=0.2,width=0.4,color="grey75"]; + Node19 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node21 [label="iostream",height=0.2,width=0.4,color="grey75"]; + Node19 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node22 [label="sys/resource.h",height=0.2,width=0.4,color="grey75"]; + Node19 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/MonitoringFactory_8h__incl.map b/MonitoringFactory_8h__incl.map new file mode 100644 index 000000000..1c7363e03 --- /dev/null +++ b/MonitoringFactory_8h__incl.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/MonitoringFactory_8h__incl.md5 b/MonitoringFactory_8h__incl.md5 new file mode 100644 index 000000000..d97df7cee --- /dev/null +++ b/MonitoringFactory_8h__incl.md5 @@ -0,0 +1 @@ +396be901aca4a36ffb3e5294e9b6e905 \ No newline at end of file diff --git a/MonitoringFactory_8h__incl.svg b/MonitoringFactory_8h__incl.svg new file mode 100644 index 000000000..9c0588592 --- /dev/null +++ b/MonitoringFactory_8h__incl.svg @@ -0,0 +1,416 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/home/travis/build/AliceO2Group/Monitoring/include/Monitoring/MonitoringFactory.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Monitoring +Factory.h + + +Node2 + + +Monitoring/Monitoring.h + + + + +Node1->Node2 + + + + +Node3 + +atomic + + +Node2->Node3 + + + + +Node4 + +chrono + + +Node2->Node4 + + + + +Node5 + +map + + +Node2->Node5 + + + + +Node6 + +memory + + +Node2->Node6 + + + + +Node7 + +string + + +Node2->Node7 + + + + +Node8 + +thread + + +Node2->Node8 + + + + +Node9 + +tuple + + +Node2->Node9 + + + + +Node10 + +unordered_map + + +Node2->Node10 + + + + +Node11 + +vector + + +Node2->Node11 + + + + +Node12 + +deque + + +Node2->Node12 + + + + +Node13 + + +Monitoring/Backend.h + + + + +Node2->Node13 + + + + +Node18 + + +Monitoring/DerivedMetrics.h + + + + +Node2->Node18 + + + + +Node19 + + +Monitoring/ProcessMonitor.h + + + + +Node2->Node19 + + + + +Node13->Node4 + + + + +Node13->Node7 + + + + +Node14 + + +Monitoring/Metric.h + + + + +Node13->Node14 + + + + +Node14->Node4 + + + + +Node14->Node5 + + + + +Node14->Node7 + + + + +Node14->Node11 + + + + +Node15 + +regex + + +Node14->Node15 + + + + +Node16 + +variant + + +Node14->Node16 + + + + +Node17 + + +Tags.h + + + + +Node14->Node17 + + + + +Node17->Node7 + + + + +Node18->Node6 + + + + +Node18->Node7 + + + + +Node18->Node10 + + + + +Node18->Node11 + + + + +Node18->Node14 + + + + +Node19->Node3 + + + + +Node19->Node7 + + + + +Node19->Node11 + + + + +Node19->Node14 + + + + +Node20 + +boost/algorithm/string.hpp + + +Node19->Node20 + + + + +Node21 + +iostream + + +Node19->Node21 + + + + +Node22 + +sys/resource.h + + +Node19->Node22 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/MonitoringFactory_8h__incl_org.svg b/MonitoringFactory_8h__incl_org.svg new file mode 100644 index 000000000..e5ca17918 --- /dev/null +++ b/MonitoringFactory_8h__incl_org.svg @@ -0,0 +1,328 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/include/Monitoring/MonitoringFactory.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Monitoring +Factory.h + + +Node2 + + +Monitoring/Monitoring.h + + + + +Node1->Node2 + + + + +Node3 + +atomic + + +Node2->Node3 + + + + +Node4 + +chrono + + +Node2->Node4 + + + + +Node5 + +map + + +Node2->Node5 + + + + +Node6 + +memory + + +Node2->Node6 + + + + +Node7 + +string + + +Node2->Node7 + + + + +Node8 + +thread + + +Node2->Node8 + + + + +Node9 + +tuple + + +Node2->Node9 + + + + +Node10 + +unordered_map + + +Node2->Node10 + + + + +Node11 + +vector + + +Node2->Node11 + + + + +Node12 + +deque + + +Node2->Node12 + + + + +Node13 + + +Monitoring/Backend.h + + + + +Node2->Node13 + + + + +Node18 + + +Monitoring/DerivedMetrics.h + + + + +Node2->Node18 + + + + +Node19 + + +Monitoring/ProcessMonitor.h + + + + +Node2->Node19 + + + + +Node13->Node4 + + + + +Node13->Node7 + + + + +Node14 + + +Monitoring/Metric.h + + + + +Node13->Node14 + + + + +Node14->Node4 + + + + +Node14->Node5 + + + + +Node14->Node7 + + + + +Node14->Node11 + + + + +Node15 + +regex + + +Node14->Node15 + + + + +Node16 + +variant + + +Node14->Node16 + + + + +Node17 + + +Tags.h + + + + +Node14->Node17 + + + + +Node17->Node7 + + + + +Node18->Node6 + + + + +Node18->Node7 + + + + +Node18->Node10 + + + + +Node18->Node11 + + + + +Node18->Node14 + + + + +Node19->Node3 + + + + +Node19->Node7 + + + + +Node19->Node11 + + + + +Node19->Node14 + + + + +Node20 + +boost/algorithm/string.hpp + + +Node19->Node20 + + + + +Node21 + +iostream + + +Node19->Node21 + + + + +Node22 + +sys/resource.h + + +Node19->Node22 + + + + + diff --git a/MonitoringFactory_8h_source.html b/MonitoringFactory_8h_source.html new file mode 100644 index 000000000..963b96f39 --- /dev/null +++ b/MonitoringFactory_8h_source.html @@ -0,0 +1,132 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/include/Monitoring/MonitoringFactory.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
MonitoringFactory.h
+
+
+Go to the documentation of this file.
1 // Copyright CERN and copyright holders of ALICE O2. This software is
2 // distributed under the terms of the GNU General Public License v3 (GPL
3 // Version 3), copied verbatim in the file "COPYING".
4 //
5 // See http://alice-o2.web.cern.ch/license for full licensing information.
6 //
7 // In applying this license CERN does not waive the privileges and immunities
8 // granted to it by virtue of its status as an Intergovernmental Organization
9 // or submit itself to any jurisdiction.
10 
15 
16 #ifndef ALICEO2_MONITORING_FACTORY_H
17 #define ALICEO2_MONITORING_FACTORY_H
18 
19 #include "Monitoring/Monitoring.h"
20 
21 namespace o2
22 {
24 namespace monitoring
25 {
26 
29 {
30  public:
33  MonitoringFactory(const MonitoringFactory&) = delete;
34 
38  static std::unique_ptr<Monitoring> Get(std::string urlsString) noexcept(false);
39 
43  static std::unique_ptr<Backend> GetBackend(std::string& url);
44 
45  private:
47  MonitoringFactory() = default;
48 
50  static void SetVerbosity(std::string selected, std::unique_ptr<Backend>& backend);
51 };
52 
53 } // namespace monitoring
54 } // namespace o2
55 
56 #endif // ALICEO2_MONITORING_FACTORY_H
Definition: Backend.h:23
+
static std::unique_ptr< Monitoring > Get(std::string urlsString) noexcept(false)
Definition: MonitoringFactory.cxx:189
+
MonitoringFactory & operator=(const MonitoringFactory &)=delete
Disables copy constructor.
+
static std::unique_ptr< Backend > GetBackend(std::string &url)
Definition: MonitoringFactory.cxx:158
+ +
Monitoring and monitoring backends factory.
Definition: MonitoringFactory.h:28
+
+
+ + + + diff --git a/Monitoring_8cxx.html b/Monitoring_8cxx.html new file mode 100644 index 000000000..4479460ab --- /dev/null +++ b/Monitoring_8cxx.html @@ -0,0 +1,154 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/Monitoring.cxx File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Monitoring.cxx File Reference
+
+
+
#include "Monitoring/Monitoring.h"
+#include "Exceptions/MonitoringException.h"
+#include <boost/lexical_cast.hpp>
+#include <chrono>
+#include <iostream>
+#include <memory>
+#include <string>
+#include <utility>
+#include <vector>
+#include "MonLogger.h"
+#include "ProcessDetails.h"
+
+Include dependency graph for Monitoring.cxx:
+
+
+
+
+
+ + + + +

+Namespaces

 o2::monitoring
 ALICE O2 Monitoring system.
 
+

Detailed Description

+
+
+ + + + diff --git a/Monitoring_8cxx__incl.dot b/Monitoring_8cxx__incl.dot new file mode 100644 index 000000000..a10fb43aa --- /dev/null +++ b/Monitoring_8cxx__incl.dot @@ -0,0 +1,89 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/src/Monitoring.cxx" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Monitoring.cxx",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="Monitoring/Monitoring.h",height=0.2,width=0.4,color="black",URL="$Monitoring_8h.html"]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="atomic",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="chrono",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="map",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="memory",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="string",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="thread",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="tuple",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="unordered_map",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="vector",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="deque",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [label="Monitoring/Backend.h",height=0.2,width=0.4,color="black",URL="$Backend_8h.html"]; + Node13 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 [label="Monitoring/Metric.h",height=0.2,width=0.4,color="black",URL="$Metric_8h.html"]; + Node14 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 [label="regex",height=0.2,width=0.4,color="grey75"]; + Node14 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node16 [label="variant",height=0.2,width=0.4,color="grey75"]; + Node14 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node17 [label="Tags.h",height=0.2,width=0.4,color="black",URL="$Tags_8h.html"]; + Node17 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node18 [label="Monitoring/DerivedMetrics.h",height=0.2,width=0.4,color="black",URL="$DerivedMetrics_8h.html"]; + Node18 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node18 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node18 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node18 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node18 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 [label="Monitoring/ProcessMonitor.h",height=0.2,width=0.4,color="black",URL="$ProcessMonitor_8h.html"]; + Node19 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 [label="boost/algorithm/string.hpp",height=0.2,width=0.4,color="grey75"]; + Node19 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node21 [label="iostream",height=0.2,width=0.4,color="grey75"]; + Node19 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node22 [label="sys/resource.h",height=0.2,width=0.4,color="grey75"]; + Node19 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node23 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node23 [label="Exceptions/MonitoringException.h",height=0.2,width=0.4,color="black",URL="$MonitoringException_8h.html"]; + Node23 -> Node24 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node24 [label="exception",height=0.2,width=0.4,color="grey75"]; + Node23 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node25 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node25 [label="boost/lexical_cast.hpp",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node26 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node26 [label="utility",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node27 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node27 [label="MonLogger.h",height=0.2,width=0.4,color="black",URL="$MonLogger_8h.html"]; + Node27 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node27 -> Node28 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node28 [label="iomanip",height=0.2,width=0.4,color="grey75"]; + Node27 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node29 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node29 [label="ProcessDetails.h",height=0.2,width=0.4,color="black",URL="$ProcessDetails_8h.html"]; + Node29 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/Monitoring_8cxx__incl.map b/Monitoring_8cxx__incl.map new file mode 100644 index 000000000..368b0753c --- /dev/null +++ b/Monitoring_8cxx__incl.map @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/Monitoring_8cxx__incl.md5 b/Monitoring_8cxx__incl.md5 new file mode 100644 index 000000000..33aee36db --- /dev/null +++ b/Monitoring_8cxx__incl.md5 @@ -0,0 +1 @@ +9bb687cf023fcc2c967cad81ae39929b \ No newline at end of file diff --git a/Monitoring_8cxx__incl.svg b/Monitoring_8cxx__incl.svg new file mode 100644 index 000000000..ccb698b7a --- /dev/null +++ b/Monitoring_8cxx__incl.svg @@ -0,0 +1,539 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Monitoring.cxx + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Monitoring.cxx + + +Node2 + + +Monitoring/Monitoring.h + + + + +Node1->Node2 + + + + +Node4 + +chrono + + +Node1->Node4 + + + + +Node6 + +memory + + +Node1->Node6 + + + + +Node7 + +string + + +Node1->Node7 + + + + +Node11 + +vector + + +Node1->Node11 + + + + +Node21 + +iostream + + +Node1->Node21 + + + + +Node23 + + +Exceptions/MonitoringException.h + + + + +Node1->Node23 + + + + +Node25 + +boost/lexical_cast.hpp + + +Node1->Node25 + + + + +Node26 + +utility + + +Node1->Node26 + + + + +Node27 + + +MonLogger.h + + + + +Node1->Node27 + + + + +Node29 + + +ProcessDetails.h + + + + +Node1->Node29 + + + + +Node3 + +atomic + + +Node2->Node3 + + + + +Node2->Node4 + + + + +Node5 + +map + + +Node2->Node5 + + + + +Node2->Node6 + + + + +Node2->Node7 + + + + +Node8 + +thread + + +Node2->Node8 + + + + +Node9 + +tuple + + +Node2->Node9 + + + + +Node10 + +unordered_map + + +Node2->Node10 + + + + +Node2->Node11 + + + + +Node12 + +deque + + +Node2->Node12 + + + + +Node13 + + +Monitoring/Backend.h + + + + +Node2->Node13 + + + + +Node18 + + +Monitoring/DerivedMetrics.h + + + + +Node2->Node18 + + + + +Node19 + + +Monitoring/ProcessMonitor.h + + + + +Node2->Node19 + + + + +Node13->Node4 + + + + +Node13->Node7 + + + + +Node14 + + +Monitoring/Metric.h + + + + +Node13->Node14 + + + + +Node14->Node4 + + + + +Node14->Node5 + + + + +Node14->Node7 + + + + +Node14->Node11 + + + + +Node15 + +regex + + +Node14->Node15 + + + + +Node16 + +variant + + +Node14->Node16 + + + + +Node17 + + +Tags.h + + + + +Node14->Node17 + + + + +Node17->Node7 + + + + +Node18->Node6 + + + + +Node18->Node7 + + + + +Node18->Node10 + + + + +Node18->Node11 + + + + +Node18->Node14 + + + + +Node19->Node3 + + + + +Node19->Node7 + + + + +Node19->Node11 + + + + +Node19->Node14 + + + + +Node20 + +boost/algorithm/string.hpp + + +Node19->Node20 + + + + +Node19->Node21 + + + + +Node22 + +sys/resource.h + + +Node19->Node22 + + + + +Node23->Node7 + + + + +Node24 + +exception + + +Node23->Node24 + + + + +Node27->Node4 + + + + +Node27->Node21 + + + + +Node28 + +iomanip + + +Node27->Node28 + + + + +Node29->Node7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Monitoring_8cxx__incl_org.svg b/Monitoring_8cxx__incl_org.svg new file mode 100644 index 000000000..c9410528f --- /dev/null +++ b/Monitoring_8cxx__incl_org.svg @@ -0,0 +1,451 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Monitoring.cxx + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Monitoring.cxx + + +Node2 + + +Monitoring/Monitoring.h + + + + +Node1->Node2 + + + + +Node4 + +chrono + + +Node1->Node4 + + + + +Node6 + +memory + + +Node1->Node6 + + + + +Node7 + +string + + +Node1->Node7 + + + + +Node11 + +vector + + +Node1->Node11 + + + + +Node21 + +iostream + + +Node1->Node21 + + + + +Node23 + + +Exceptions/MonitoringException.h + + + + +Node1->Node23 + + + + +Node25 + +boost/lexical_cast.hpp + + +Node1->Node25 + + + + +Node26 + +utility + + +Node1->Node26 + + + + +Node27 + + +MonLogger.h + + + + +Node1->Node27 + + + + +Node29 + + +ProcessDetails.h + + + + +Node1->Node29 + + + + +Node3 + +atomic + + +Node2->Node3 + + + + +Node2->Node4 + + + + +Node5 + +map + + +Node2->Node5 + + + + +Node2->Node6 + + + + +Node2->Node7 + + + + +Node8 + +thread + + +Node2->Node8 + + + + +Node9 + +tuple + + +Node2->Node9 + + + + +Node10 + +unordered_map + + +Node2->Node10 + + + + +Node2->Node11 + + + + +Node12 + +deque + + +Node2->Node12 + + + + +Node13 + + +Monitoring/Backend.h + + + + +Node2->Node13 + + + + +Node18 + + +Monitoring/DerivedMetrics.h + + + + +Node2->Node18 + + + + +Node19 + + +Monitoring/ProcessMonitor.h + + + + +Node2->Node19 + + + + +Node13->Node4 + + + + +Node13->Node7 + + + + +Node14 + + +Monitoring/Metric.h + + + + +Node13->Node14 + + + + +Node14->Node4 + + + + +Node14->Node5 + + + + +Node14->Node7 + + + + +Node14->Node11 + + + + +Node15 + +regex + + +Node14->Node15 + + + + +Node16 + +variant + + +Node14->Node16 + + + + +Node17 + + +Tags.h + + + + +Node14->Node17 + + + + +Node17->Node7 + + + + +Node18->Node6 + + + + +Node18->Node7 + + + + +Node18->Node10 + + + + +Node18->Node11 + + + + +Node18->Node14 + + + + +Node19->Node3 + + + + +Node19->Node7 + + + + +Node19->Node11 + + + + +Node19->Node14 + + + + +Node20 + +boost/algorithm/string.hpp + + +Node19->Node20 + + + + +Node19->Node21 + + + + +Node22 + +sys/resource.h + + +Node19->Node22 + + + + +Node23->Node7 + + + + +Node24 + +exception + + +Node23->Node24 + + + + +Node27->Node4 + + + + +Node27->Node21 + + + + +Node28 + +iomanip + + +Node27->Node28 + + + + +Node29->Node7 + + + + + diff --git a/Monitoring_8h.html b/Monitoring_8h.html new file mode 100644 index 000000000..7408c3e1c --- /dev/null +++ b/Monitoring_8h.html @@ -0,0 +1,171 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/include/Monitoring/Monitoring.h File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Monitoring.h File Reference
+
+
+
#include <atomic>
+#include <chrono>
+#include <map>
+#include <memory>
+#include <string>
+#include <thread>
+#include <tuple>
+#include <unordered_map>
+#include <vector>
+#include <deque>
+#include "Monitoring/Backend.h"
+#include "Monitoring/DerivedMetrics.h"
+#include "Monitoring/ProcessMonitor.h"
+
+Include dependency graph for Monitoring.h:
+
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  o2::monitoring::Monitoring
 Main class that collects metrics from user and dispatches them to selected monitoring backends. More...
 
+ + + + +

+Namespaces

 o2::monitoring
 ALICE O2 Monitoring system.
 
+

Detailed Description

+
+
+ + + + diff --git a/Monitoring_8h__dep__incl.dot b/Monitoring_8h__dep__incl.dot new file mode 100644 index 000000000..27652fe67 --- /dev/null +++ b/Monitoring_8h__dep__incl.dot @@ -0,0 +1,44 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/include/Monitoring/Monitoring.h" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/include/Monitoring/Monitoring.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/include/Monitoring/Monitoring\lFactory.h",height=0.2,width=0.4,color="black",URL="$MonitoringFactory_8h.html"]; + Node2 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/1-Basic.cxx",height=0.2,width=0.4,color="black",URL="$1-Basic_8cxx.html"]; + Node2 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/10-Buffering.cxx",height=0.2,width=0.4,color="black",URL="$10-Buffering_8cxx.html"]; + Node2 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/2-TaggedMetrics.cxx",height=0.2,width=0.4,color="black",URL="$2-TaggedMetrics_8cxx.html"]; + Node2 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/3-Verbosity.cxx",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/4-RateDerivedMetric.cxx",height=0.2,width=0.4,color="black",URL="$4-RateDerivedMetric_8cxx.html"]; + Node2 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/5-Benchmark.cxx",height=0.2,width=0.4,color="black",URL="$5-Benchmark_8cxx.html"]; + Node2 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/6-Increment.cxx",height=0.2,width=0.4,color="black",URL="$6-Increment_8cxx.html"]; + Node2 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/7-InternalBenchamrk.cxx",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node11 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/8-DbFiller.cxx",height=0.2,width=0.4,color="black",URL="$8-DbFiller_8cxx.html"]; + Node2 -> Node12 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/MonitoringFactory.cxx",height=0.2,width=0.4,color="black",URL="$MonitoringFactory_8cxx.html"]; + Node2 -> Node13 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testApMon.cxx",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node14 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testInfluxDb.cxx",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node15 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testMonitoring.cxx",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node16 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node16 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testMonitoringFactory.cxx",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node17 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node17 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testProcessMonitor.cxx",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node18 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node18 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testThreads.cxx",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node19 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Monitoring.cxx",height=0.2,width=0.4,color="black",URL="$Monitoring_8cxx.html"]; +} diff --git a/Monitoring_8h__dep__incl.map b/Monitoring_8h__dep__incl.map new file mode 100644 index 000000000..8d28dec80 --- /dev/null +++ b/Monitoring_8h__dep__incl.map @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/Monitoring_8h__dep__incl.md5 b/Monitoring_8h__dep__incl.md5 new file mode 100644 index 000000000..05fcb91a5 --- /dev/null +++ b/Monitoring_8h__dep__incl.md5 @@ -0,0 +1 @@ +e3d33a8234a7502429bf05c46d462c85 \ No newline at end of file diff --git a/Monitoring_8h__dep__incl.svg b/Monitoring_8h__dep__incl.svg new file mode 100644 index 000000000..69653a6f3 --- /dev/null +++ b/Monitoring_8h__dep__incl.svg @@ -0,0 +1,354 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/home/travis/build/AliceO2Group/Monitoring/include/Monitoring/Monitoring.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Monitoring.h + + +Node2 + + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Monitoring +Factory.h + + + + +Node1->Node2 + + + + +Node19 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Monitoring.cxx + + + + +Node1->Node19 + + + + +Node3 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/1-Basic.cxx + + + + +Node2->Node3 + + + + +Node4 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/10-Buffering.cxx + + + + +Node2->Node4 + + + + +Node5 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/2-TaggedMetrics.cxx + + + + +Node2->Node5 + + + + +Node6 + +/home/travis/build +/AliceO2Group/Monitoring +/examples/3-Verbosity.cxx + + +Node2->Node6 + + + + +Node7 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/4-RateDerivedMetric.cxx + + + + +Node2->Node7 + + + + +Node8 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/5-Benchmark.cxx + + + + +Node2->Node8 + + + + +Node9 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/6-Increment.cxx + + + + +Node2->Node9 + + + + +Node10 + +/home/travis/build +/AliceO2Group/Monitoring +/examples/7-InternalBenchamrk.cxx + + +Node2->Node10 + + + + +Node11 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/8-DbFiller.cxx + + + + +Node2->Node11 + + + + +Node12 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/MonitoringFactory.cxx + + + + +Node2->Node12 + + + + +Node13 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testApMon.cxx + + +Node2->Node13 + + + + +Node14 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testInfluxDb.cxx + + +Node2->Node14 + + + + +Node15 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testMonitoring.cxx + + +Node2->Node15 + + + + +Node16 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testMonitoringFactory.cxx + + +Node2->Node16 + + + + +Node17 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testProcessMonitor.cxx + + +Node2->Node17 + + + + +Node18 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testThreads.cxx + + +Node2->Node18 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Monitoring_8h__dep__incl_org.svg b/Monitoring_8h__dep__incl_org.svg new file mode 100644 index 000000000..0041f9e95 --- /dev/null +++ b/Monitoring_8h__dep__incl_org.svg @@ -0,0 +1,266 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/include/Monitoring/Monitoring.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Monitoring.h + + +Node2 + + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Monitoring +Factory.h + + + + +Node1->Node2 + + + + +Node19 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Monitoring.cxx + + + + +Node1->Node19 + + + + +Node3 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/1-Basic.cxx + + + + +Node2->Node3 + + + + +Node4 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/10-Buffering.cxx + + + + +Node2->Node4 + + + + +Node5 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/2-TaggedMetrics.cxx + + + + +Node2->Node5 + + + + +Node6 + +/home/travis/build +/AliceO2Group/Monitoring +/examples/3-Verbosity.cxx + + +Node2->Node6 + + + + +Node7 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/4-RateDerivedMetric.cxx + + + + +Node2->Node7 + + + + +Node8 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/5-Benchmark.cxx + + + + +Node2->Node8 + + + + +Node9 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/6-Increment.cxx + + + + +Node2->Node9 + + + + +Node10 + +/home/travis/build +/AliceO2Group/Monitoring +/examples/7-InternalBenchamrk.cxx + + +Node2->Node10 + + + + +Node11 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/8-DbFiller.cxx + + + + +Node2->Node11 + + + + +Node12 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/MonitoringFactory.cxx + + + + +Node2->Node12 + + + + +Node13 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testApMon.cxx + + +Node2->Node13 + + + + +Node14 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testInfluxDb.cxx + + +Node2->Node14 + + + + +Node15 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testMonitoring.cxx + + +Node2->Node15 + + + + +Node16 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testMonitoringFactory.cxx + + +Node2->Node16 + + + + +Node17 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testProcessMonitor.cxx + + +Node2->Node17 + + + + +Node18 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testThreads.cxx + + +Node2->Node18 + + + + + diff --git a/Monitoring_8h__incl.dot b/Monitoring_8h__incl.dot new file mode 100644 index 000000000..e8be6556a --- /dev/null +++ b/Monitoring_8h__incl.dot @@ -0,0 +1,64 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/include/Monitoring/Monitoring.h" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/include/Monitoring/Monitoring.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="atomic",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="chrono",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="map",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="memory",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="string",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="thread",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="tuple",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="unordered_map",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="vector",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="deque",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="Monitoring/Backend.h",height=0.2,width=0.4,color="black",URL="$Backend_8h.html"]; + Node12 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [label="Monitoring/Metric.h",height=0.2,width=0.4,color="black",URL="$Metric_8h.html"]; + Node13 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 [label="regex",height=0.2,width=0.4,color="grey75"]; + Node13 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 [label="variant",height=0.2,width=0.4,color="grey75"]; + Node13 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node16 [label="Tags.h",height=0.2,width=0.4,color="black",URL="$Tags_8h.html"]; + Node16 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node17 [label="Monitoring/DerivedMetrics.h",height=0.2,width=0.4,color="black",URL="$DerivedMetrics_8h.html"]; + Node17 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node17 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node17 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node17 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node17 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node18 [label="Monitoring/ProcessMonitor.h",height=0.2,width=0.4,color="black",URL="$ProcessMonitor_8h.html"]; + Node18 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node18 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 [label="boost/algorithm/string.hpp",height=0.2,width=0.4,color="grey75"]; + Node18 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 [label="iostream",height=0.2,width=0.4,color="grey75"]; + Node18 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node18 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node18 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node21 [label="sys/resource.h",height=0.2,width=0.4,color="grey75"]; + Node18 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/Monitoring_8h__incl.map b/Monitoring_8h__incl.map new file mode 100644 index 000000000..daa16078e --- /dev/null +++ b/Monitoring_8h__incl.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Monitoring_8h__incl.md5 b/Monitoring_8h__incl.md5 new file mode 100644 index 000000000..49baaad37 --- /dev/null +++ b/Monitoring_8h__incl.md5 @@ -0,0 +1 @@ +57a6dbd9ba38ca558b5bb5f70c1dd757 \ No newline at end of file diff --git a/Monitoring_8h__incl.svg b/Monitoring_8h__incl.svg new file mode 100644 index 000000000..8fe19595b --- /dev/null +++ b/Monitoring_8h__incl.svg @@ -0,0 +1,402 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/home/travis/build/AliceO2Group/Monitoring/include/Monitoring/Monitoring.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Monitoring.h + + +Node2 + +atomic + + +Node1->Node2 + + + + +Node3 + +chrono + + +Node1->Node3 + + + + +Node4 + +map + + +Node1->Node4 + + + + +Node5 + +memory + + +Node1->Node5 + + + + +Node6 + +string + + +Node1->Node6 + + + + +Node7 + +thread + + +Node1->Node7 + + + + +Node8 + +tuple + + +Node1->Node8 + + + + +Node9 + +unordered_map + + +Node1->Node9 + + + + +Node10 + +vector + + +Node1->Node10 + + + + +Node11 + +deque + + +Node1->Node11 + + + + +Node12 + + +Monitoring/Backend.h + + + + +Node1->Node12 + + + + +Node17 + + +Monitoring/DerivedMetrics.h + + + + +Node1->Node17 + + + + +Node18 + + +Monitoring/ProcessMonitor.h + + + + +Node1->Node18 + + + + +Node12->Node3 + + + + +Node12->Node6 + + + + +Node13 + + +Monitoring/Metric.h + + + + +Node12->Node13 + + + + +Node13->Node3 + + + + +Node13->Node4 + + + + +Node13->Node6 + + + + +Node13->Node10 + + + + +Node14 + +regex + + +Node13->Node14 + + + + +Node15 + +variant + + +Node13->Node15 + + + + +Node16 + + +Tags.h + + + + +Node13->Node16 + + + + +Node16->Node6 + + + + +Node17->Node5 + + + + +Node17->Node6 + + + + +Node17->Node9 + + + + +Node17->Node10 + + + + +Node17->Node13 + + + + +Node18->Node2 + + + + +Node18->Node6 + + + + +Node18->Node10 + + + + +Node18->Node13 + + + + +Node19 + +boost/algorithm/string.hpp + + +Node18->Node19 + + + + +Node20 + +iostream + + +Node18->Node20 + + + + +Node21 + +sys/resource.h + + +Node18->Node21 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Monitoring_8h__incl_org.svg b/Monitoring_8h__incl_org.svg new file mode 100644 index 000000000..3db6e664e --- /dev/null +++ b/Monitoring_8h__incl_org.svg @@ -0,0 +1,314 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/include/Monitoring/Monitoring.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Monitoring.h + + +Node2 + +atomic + + +Node1->Node2 + + + + +Node3 + +chrono + + +Node1->Node3 + + + + +Node4 + +map + + +Node1->Node4 + + + + +Node5 + +memory + + +Node1->Node5 + + + + +Node6 + +string + + +Node1->Node6 + + + + +Node7 + +thread + + +Node1->Node7 + + + + +Node8 + +tuple + + +Node1->Node8 + + + + +Node9 + +unordered_map + + +Node1->Node9 + + + + +Node10 + +vector + + +Node1->Node10 + + + + +Node11 + +deque + + +Node1->Node11 + + + + +Node12 + + +Monitoring/Backend.h + + + + +Node1->Node12 + + + + +Node17 + + +Monitoring/DerivedMetrics.h + + + + +Node1->Node17 + + + + +Node18 + + +Monitoring/ProcessMonitor.h + + + + +Node1->Node18 + + + + +Node12->Node3 + + + + +Node12->Node6 + + + + +Node13 + + +Monitoring/Metric.h + + + + +Node12->Node13 + + + + +Node13->Node3 + + + + +Node13->Node4 + + + + +Node13->Node6 + + + + +Node13->Node10 + + + + +Node14 + +regex + + +Node13->Node14 + + + + +Node15 + +variant + + +Node13->Node15 + + + + +Node16 + + +Tags.h + + + + +Node13->Node16 + + + + +Node16->Node6 + + + + +Node17->Node5 + + + + +Node17->Node6 + + + + +Node17->Node9 + + + + +Node17->Node10 + + + + +Node17->Node13 + + + + +Node18->Node2 + + + + +Node18->Node6 + + + + +Node18->Node10 + + + + +Node18->Node13 + + + + +Node19 + +boost/algorithm/string.hpp + + +Node18->Node19 + + + + +Node20 + +iostream + + +Node18->Node20 + + + + +Node21 + +sys/resource.h + + +Node18->Node21 + + + + + diff --git a/Monitoring_8h_source.html b/Monitoring_8h_source.html new file mode 100644 index 000000000..6000c6fee --- /dev/null +++ b/Monitoring_8h_source.html @@ -0,0 +1,143 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/include/Monitoring/Monitoring.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Monitoring.h
+
+
+Go to the documentation of this file.
1 // Copyright CERN and copyright holders of ALICE O2. This software is
2 // distributed under the terms of the GNU General Public License v3 (GPL
3 // Version 3), copied verbatim in the file "COPYING".
4 //
5 // See http://alice-o2.web.cern.ch/license for full licensing information.
6 //
7 // In applying this license CERN does not waive the privileges and immunities
8 // granted to it by virtue of its status as an Intergovernmental Organization
9 // or submit itself to any jurisdiction.
10 
15 
16 #ifndef ALICEO2_MONITORING_MONITORING_H
17 #define ALICEO2_MONITORING_MONITORING_H
18 
19 #include <atomic>
20 #include <chrono>
21 #include <map>
22 #include <memory>
23 #include <string>
24 #include <thread>
25 #include <tuple>
26 #include <unordered_map>
27 #include <vector>
28 #include <deque>
29 
30 #include "Monitoring/Backend.h"
33 
34 namespace o2
35 {
37 namespace monitoring
38 {
39 
47 {
48  public:
50  Monitoring& operator=(const Monitoring&) = delete;
51 
53  Monitoring(const Monitoring&) = delete;
54 
56  Monitoring();
57 
59  void addBackend(std::unique_ptr<Backend> backend);
60 
62  ~Monitoring();
63 
68  void send(Metric&& metric, DerivedMetricMode mode = DerivedMetricMode::NONE);
69 
72  void enableProcessMonitoring(const unsigned int interval = 5);
73 
75  void flushBuffer();
76 
79  void enableBuffering(const std::size_t size = 128);
80 
84  void addGlobalTag(std::string_view name, std::string_view value);
85 
89  void addGlobalTag(tags::Key key, tags::Value value);
90 
94  //ComplexMetric& getAutoPushMetric(std::string name, unsigned int interval = 1);
95 
96  private:
99  void transmit(std::vector<Metric>&& metrics);
100 
102  void flushBuffer(short index);
103 
105  bool matchVerbosity(Verbosity backend, Verbosity metric);
106 
109  std::unique_ptr<DerivedMetrics> mDerivedHandler;
110 
112  std::vector<std::unique_ptr<Backend>> mBackends;
113 
115  void transmit(Metric&& metric);
116 
118  std::atomic<bool> mMonitorRunning;
119 
121  std::thread mMonitorThread;
122 
124  std::unique_ptr<ProcessMonitor> mProcessMonitor;
125 
127  void pushLoop();
128 
130  std::unordered_map<std::underlying_type<Verbosity>::type, std::vector<Metric>> mStorage;
131 
133  bool mBuffering;
134 
136  std::size_t mBufferSize;
137 
139  //std::deque<ComplexMetric> mPushStore;
140 
142  std::atomic<unsigned int> mProcessMonitoringInterval;
143 
145  //std::atomic<unsigned int> mAutoPushInterval;
146 };
147 
148 } // namespace monitoring
149 } // namespace o2
150 
151 #endif // ALICEO2_MONITORING_MONITORING_H
void addBackend(std::unique_ptr< Backend > backend)
Creates and appends backend to the backend list.
Definition: Monitoring.cxx:113
+
Definition: Backend.h:23
+
void enableBuffering(const std::size_t size=128)
Definition: Monitoring.cxx:46
+
Verbosity
Metric and Backedn verbosity.
Definition: Metric.h:24
+
DerivedMetricMode
Available derived metric modes.
Definition: DerivedMetrics.h:33
+
void enableProcessMonitoring(const unsigned int interval=5)
Definition: Monitoring.cxx:82
+
~Monitoring()
Joins process monitor thread if possible.
Definition: Monitoring.cxx:120
+
Main class that collects metrics from user and dispatches them to selected monitoring backends...
Definition: Monitoring.h:46
+
void flushBuffer()
Flushes metric buffer (this can also happen when buffer is full)
Definition: Monitoring.cxx:56
+
Represents a metric including value, type of the value, name, timestamp and tags. ...
Definition: Metric.h:37
+
void addGlobalTag(std::string_view name, std::string_view value)
Definition: Monitoring.cxx:97
+ + +
Monitoring & operator=(const Monitoring &)=delete
Disable copy constructor.
+
Monitoring()
Instantiates derived metrics processor (see DerivedMetrics) and process monitor (seeProcessMonitor).
Definition: Monitoring.cxx:36
+ +
void send(Metric &&metric, DerivedMetricMode mode=DerivedMetricMode::NONE)
Definition: Monitoring.cxx:169
+
+
+ + + + diff --git a/Noop_8h.html b/Noop_8h.html new file mode 100644 index 000000000..30b2ded9e --- /dev/null +++ b/Noop_8h.html @@ -0,0 +1,162 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/Backends/Noop.h File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Noop.h File Reference
+
+
+
+Include dependency graph for Noop.h:
+
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  o2::monitoring::backends::Noop
 No-op backend. More...
 
+ + + + + + + +

+Namespaces

 o2::monitoring
 ALICE O2 Monitoring system.
 
 o2::monitoring::backends
 Monitoring backends.
 
+

Detailed Description

+
+
+ + + + diff --git a/Noop_8h__dep__incl.dot b/Noop_8h__dep__incl.dot new file mode 100644 index 000000000..cb9749c48 --- /dev/null +++ b/Noop_8h__dep__incl.dot @@ -0,0 +1,12 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/src/Backends/Noop.h" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Backends/Noop.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/MonitoringFactory.cxx",height=0.2,width=0.4,color="black",URL="$MonitoringFactory_8cxx.html"]; + Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testNoop.cxx",height=0.2,width=0.4,color="grey75"]; +} diff --git a/Noop_8h__dep__incl.map b/Noop_8h__dep__incl.map new file mode 100644 index 000000000..fff98a3ef --- /dev/null +++ b/Noop_8h__dep__incl.map @@ -0,0 +1,3 @@ + + + diff --git a/Noop_8h__dep__incl.md5 b/Noop_8h__dep__incl.md5 new file mode 100644 index 000000000..042aa1596 --- /dev/null +++ b/Noop_8h__dep__incl.md5 @@ -0,0 +1 @@ +a39312fe999652ddff73789872f86daa \ No newline at end of file diff --git a/Noop_8h__dep__incl.svg b/Noop_8h__dep__incl.svg new file mode 100644 index 000000000..5e8b37dab --- /dev/null +++ b/Noop_8h__dep__incl.svg @@ -0,0 +1,46 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Backends/Noop.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/Noop.h + + +Node2 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/MonitoringFactory.cxx + + + + +Node1->Node2 + + + + +Node3 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testNoop.cxx + + +Node1->Node3 + + + + + diff --git a/Noop_8h__incl.dot b/Noop_8h__incl.dot new file mode 100644 index 000000000..6708378b6 --- /dev/null +++ b/Noop_8h__incl.dot @@ -0,0 +1,29 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/src/Backends/Noop.h" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Backends/Noop.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="Monitoring/Backend.h",height=0.2,width=0.4,color="black",URL="$Backend_8h.html"]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="chrono",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="string",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="Monitoring/Metric.h",height=0.2,width=0.4,color="black",URL="$Metric_8h.html"]; + Node5 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="map",height=0.2,width=0.4,color="grey75"]; + Node5 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="regex",height=0.2,width=0.4,color="grey75"]; + Node5 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="variant",height=0.2,width=0.4,color="grey75"]; + Node5 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="vector",height=0.2,width=0.4,color="grey75"]; + Node5 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="Tags.h",height=0.2,width=0.4,color="black",URL="$Tags_8h.html"]; + Node10 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/Noop_8h__incl.map b/Noop_8h__incl.map new file mode 100644 index 000000000..897077720 --- /dev/null +++ b/Noop_8h__incl.map @@ -0,0 +1,5 @@ + + + + + diff --git a/Noop_8h__incl.md5 b/Noop_8h__incl.md5 new file mode 100644 index 000000000..ce92fea36 --- /dev/null +++ b/Noop_8h__incl.md5 @@ -0,0 +1 @@ +b9bca2925878cfecb03e7e8d824c5749 \ No newline at end of file diff --git a/Noop_8h__incl.svg b/Noop_8h__incl.svg new file mode 100644 index 000000000..e200b82c3 --- /dev/null +++ b/Noop_8h__incl.svg @@ -0,0 +1,133 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Backends/Noop.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/Noop.h + + +Node2 + + +Monitoring/Backend.h + + + + +Node1->Node2 + + + + +Node3 + +chrono + + +Node2->Node3 + + + + +Node4 + +string + + +Node2->Node4 + + + + +Node5 + + +Monitoring/Metric.h + + + + +Node2->Node5 + + + + +Node5->Node3 + + + + +Node5->Node4 + + + + +Node6 + +map + + +Node5->Node6 + + + + +Node7 + +regex + + +Node5->Node7 + + + + +Node8 + +variant + + +Node5->Node8 + + + + +Node9 + +vector + + +Node5->Node9 + + + + +Node10 + + +Tags.h + + + + +Node5->Node10 + + + + +Node10->Node4 + + + + + diff --git a/Noop_8h_source.html b/Noop_8h_source.html new file mode 100644 index 000000000..649dcfc4e --- /dev/null +++ b/Noop_8h_source.html @@ -0,0 +1,136 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/Backends/Noop.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Noop.h
+
+
+Go to the documentation of this file.
1 // Copyright CERN and copyright holders of ALICE O2. This software is
2 // distributed under the terms of the GNU General Public License v3 (GPL
3 // Version 3), copied verbatim in the file "COPYING".
4 //
5 // See http://alice-o2.web.cern.ch/license for full licensing information.
6 //
7 // In applying this license CERN does not waive the privileges and immunities
8 // granted to it by virtue of its status as an Intergovernmental Organization
9 // or submit itself to any jurisdiction.
10 
15 
16 #ifndef ALICEO2_MONITORING_BACKENDS_NOOP_H
17 #define ALICEO2_MONITORING_BACKENDS_NOOP_H
18 
19 #include "Monitoring/Backend.h"
20 
21 namespace o2
22 {
24 namespace monitoring
25 {
27 namespace backends
28 {
29 
33 class Noop final : public Backend
34 {
35  public:
37  Noop() = default;
38 
40  ~Noop() = default;
41 
43  void send(std::vector<Metric>&& /*metrics*/) final {}
44 
46  void send(const Metric& /*metric*/) final {}
47 
50  void addGlobalTag(std::string_view /*name*/, std::string_view /*value*/) final {}
51 };
52 
53 } // namespace backends
54 } // namespace monitoring
55 } // namespace o2
56 
57 #endif // ALICEO2_MONITORING_BACKENDS_NOOP_H
void addGlobalTag(std::string_view, std::string_view) final
Definition: Noop.h:50
+
Definition: Backend.h:23
+
Backend pure virtual interface.
Definition: Backend.h:33
+
Represents a metric including value, type of the value, name, timestamp and tags. ...
Definition: Metric.h:37
+
Noop()=default
Constructs backend.
+
void send(std::vector< Metric > &&) final
@param metrics vector of metrics
Definition: Noop.h:43
+ +
~Noop()=default
Default destructor.
+
No-op backend.
Definition: Noop.h:33
+
void send(const Metric &) final
Definition: Noop.h:46
+
+
+ + + + diff --git a/ProcessDetails_8cxx.html b/ProcessDetails_8cxx.html new file mode 100644 index 000000000..c61c4555d --- /dev/null +++ b/ProcessDetails_8cxx.html @@ -0,0 +1,145 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/ProcessDetails.cxx File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
ProcessDetails.cxx File Reference
+
+
+
#include "ProcessDetails.h"
+#include <unistd.h>
+
+Include dependency graph for ProcessDetails.cxx:
+
+
+
+
+
+ + + + +

+Namespaces

 o2::monitoring
 ALICE O2 Monitoring system.
 
+

Detailed Description

+
+
+ + + + diff --git a/ProcessDetails_8cxx__incl.dot b/ProcessDetails_8cxx__incl.dot new file mode 100644 index 000000000..cbc429078 --- /dev/null +++ b/ProcessDetails_8cxx__incl.dot @@ -0,0 +1,14 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/src/ProcessDetails.cxx" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/ProcessDetails.cxx",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="ProcessDetails.h",height=0.2,width=0.4,color="black",URL="$ProcessDetails_8h.html"]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="string",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="unistd.h",height=0.2,width=0.4,color="grey75"]; +} diff --git a/ProcessDetails_8cxx__incl.map b/ProcessDetails_8cxx__incl.map new file mode 100644 index 000000000..ab31011ad --- /dev/null +++ b/ProcessDetails_8cxx__incl.map @@ -0,0 +1,3 @@ + + + diff --git a/ProcessDetails_8cxx__incl.md5 b/ProcessDetails_8cxx__incl.md5 new file mode 100644 index 000000000..86ca434c2 --- /dev/null +++ b/ProcessDetails_8cxx__incl.md5 @@ -0,0 +1 @@ +3ba65df7c3e8118c110490e1ae508675 \ No newline at end of file diff --git a/ProcessDetails_8cxx__incl.svg b/ProcessDetails_8cxx__incl.svg new file mode 100644 index 000000000..e9d181992 --- /dev/null +++ b/ProcessDetails_8cxx__incl.svg @@ -0,0 +1,52 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/ProcessDetails.cxx + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/ProcessDetails.cxx + + +Node2 + + +ProcessDetails.h + + + + +Node1->Node2 + + + + +Node4 + +unistd.h + + +Node1->Node4 + + + + +Node3 + +string + + +Node2->Node3 + + + + + diff --git a/ProcessDetails_8h.html b/ProcessDetails_8h.html new file mode 100644 index 000000000..98d98a658 --- /dev/null +++ b/ProcessDetails_8h.html @@ -0,0 +1,159 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/ProcessDetails.h File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
ProcessDetails.h File Reference
+
+
+
#include <string>
+
+Include dependency graph for ProcessDetails.h:
+
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  o2::monitoring::ProcessDetails
 Collects process and machine related details such as PID, process name, hostname. More...
 
+ + + + +

+Namespaces

 o2::monitoring
 ALICE O2 Monitoring system.
 
+

Detailed Description

+
+
+ + + + diff --git a/ProcessDetails_8h__dep__incl.dot b/ProcessDetails_8h__dep__incl.dot new file mode 100644 index 000000000..f37ce97ab --- /dev/null +++ b/ProcessDetails_8h__dep__incl.dot @@ -0,0 +1,14 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/src/ProcessDetails.h" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/ProcessDetails.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Monitoring.cxx",height=0.2,width=0.4,color="black",URL="$Monitoring_8cxx.html"]; + Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/ProcessDetails.cxx",height=0.2,width=0.4,color="black",URL="$ProcessDetails_8cxx.html"]; + Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testProcessDetails.cxx",height=0.2,width=0.4,color="grey75"]; +} diff --git a/ProcessDetails_8h__dep__incl.map b/ProcessDetails_8h__dep__incl.map new file mode 100644 index 000000000..4aec08b39 --- /dev/null +++ b/ProcessDetails_8h__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/ProcessDetails_8h__dep__incl.md5 b/ProcessDetails_8h__dep__incl.md5 new file mode 100644 index 000000000..f42f8c7a2 --- /dev/null +++ b/ProcessDetails_8h__dep__incl.md5 @@ -0,0 +1 @@ +5f89920f738d660cd04f7d9b0a7af0dc \ No newline at end of file diff --git a/ProcessDetails_8h__dep__incl.svg b/ProcessDetails_8h__dep__incl.svg new file mode 100644 index 000000000..ad41d6935 --- /dev/null +++ b/ProcessDetails_8h__dep__incl.svg @@ -0,0 +1,61 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/ProcessDetails.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/ProcessDetails.h + + +Node2 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Monitoring.cxx + + + + +Node1->Node2 + + + + +Node3 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/ProcessDetails.cxx + + + + +Node1->Node3 + + + + +Node4 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testProcessDetails.cxx + + +Node1->Node4 + + + + + diff --git a/ProcessDetails_8h__incl.dot b/ProcessDetails_8h__incl.dot new file mode 100644 index 000000000..18fd397cc --- /dev/null +++ b/ProcessDetails_8h__incl.dot @@ -0,0 +1,10 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/src/ProcessDetails.h" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/ProcessDetails.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="string",height=0.2,width=0.4,color="grey75"]; +} diff --git a/ProcessDetails_8h__incl.map b/ProcessDetails_8h__incl.map new file mode 100644 index 000000000..d65043ff4 --- /dev/null +++ b/ProcessDetails_8h__incl.map @@ -0,0 +1,2 @@ + + diff --git a/ProcessDetails_8h__incl.md5 b/ProcessDetails_8h__incl.md5 new file mode 100644 index 000000000..00db60cb5 --- /dev/null +++ b/ProcessDetails_8h__incl.md5 @@ -0,0 +1 @@ +9b056803dd61faeddbfef43c5b311930 \ No newline at end of file diff --git a/ProcessDetails_8h__incl.svg b/ProcessDetails_8h__incl.svg new file mode 100644 index 000000000..302423152 --- /dev/null +++ b/ProcessDetails_8h__incl.svg @@ -0,0 +1,29 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/ProcessDetails.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/ProcessDetails.h + + +Node2 + +string + + +Node1->Node2 + + + + + diff --git a/ProcessDetails_8h_source.html b/ProcessDetails_8h_source.html new file mode 100644 index 000000000..f5ca57bf3 --- /dev/null +++ b/ProcessDetails_8h_source.html @@ -0,0 +1,132 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/ProcessDetails.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
ProcessDetails.h
+
+
+Go to the documentation of this file.
1 // Copyright CERN and copyright holders of ALICE O2. This software is
2 // distributed under the terms of the GNU General Public License v3 (GPL
3 // Version 3), copied verbatim in the file "COPYING".
4 //
5 // See http://alice-o2.web.cern.ch/license for full licensing information.
6 //
7 // In applying this license CERN does not waive the privileges and immunities
8 // granted to it by virtue of its status as an Intergovernmental Organization
9 // or submit itself to any jurisdiction.
10 
15 
16 #ifndef ALICEO2_MONITORING_PROCESSDETAILS_H
17 #define ALICEO2_MONITORING_PROCESSDETAILS_H
18 
19 #include <string>
20 
21 namespace o2
22 {
24 namespace monitoring
25 {
26 
29 {
30  public:
33 
35  unsigned int getPid() const;
36 
38  std::string getProcessName() const;
39 
41  std::string getHostname() const;
42 
43  private:
45  unsigned int mPid;
46 
48  std::string mHostname;
49 
51  std::string mProcessName;
52 
54  void generatePid();
55 
57  void generateProcessName();
58 
60  void generateHostname();
61 };
62 
63 } // namespace monitoring
64 } // namespace o2
65 
66 #endif // ALICEO2_MONITORING_PROCESSDETAILS_H
Definition: Backend.h:23
+
Collects process and machine related details such as PID, process name, hostname. ...
Definition: ProcessDetails.h:28
+
std::string getProcessName() const
Process name getter.
Definition: ProcessDetails.cxx:79
+
std::string getHostname() const
Hostname getter.
Definition: ProcessDetails.cxx:84
+
ProcessDetails()
Generates all data.
Definition: ProcessDetails.cxx:30
+
unsigned int getPid() const
PID getter.
Definition: ProcessDetails.cxx:74
+
+
+ + + + diff --git a/ProcessMonitor_8cxx.html b/ProcessMonitor_8cxx.html new file mode 100644 index 000000000..54e513834 --- /dev/null +++ b/ProcessMonitor_8cxx.html @@ -0,0 +1,152 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/ProcessMonitor.cxx File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
ProcessMonitor.cxx File Reference
+
+
+
#include "Monitoring/ProcessMonitor.h"
+#include "MonLogger.h"
+#include <boost/algorithm/string/classification.hpp>
+#include <chrono>
+#include <sstream>
+#include <cmath>
+#include <fstream>
+#include <utility>
+#include <numeric>
+
+Include dependency graph for ProcessMonitor.cxx:
+
+
+
+
+
+ + + + +

+Namespaces

 o2::monitoring
 ALICE O2 Monitoring system.
 
+

Detailed Description

+
+
+ + + + diff --git a/ProcessMonitor_8cxx__incl.dot b/ProcessMonitor_8cxx__incl.dot new file mode 100644 index 000000000..4e20960ec --- /dev/null +++ b/ProcessMonitor_8cxx__incl.dot @@ -0,0 +1,56 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/src/ProcessMonitor.cxx" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/ProcessMonitor.cxx",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="Monitoring/ProcessMonitor.h",height=0.2,width=0.4,color="black",URL="$ProcessMonitor_8h.html"]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="atomic",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="boost/algorithm/string.hpp",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="iostream",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="string",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="vector",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="sys/resource.h",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="Monitoring/Metric.h",height=0.2,width=0.4,color="black",URL="$Metric_8h.html"]; + Node9 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="chrono",height=0.2,width=0.4,color="grey75"]; + Node9 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="map",height=0.2,width=0.4,color="grey75"]; + Node9 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="regex",height=0.2,width=0.4,color="grey75"]; + Node9 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [label="variant",height=0.2,width=0.4,color="grey75"]; + Node9 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 -> Node14 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 [label="Tags.h",height=0.2,width=0.4,color="black",URL="$Tags_8h.html"]; + Node14 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node15 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 [label="MonLogger.h",height=0.2,width=0.4,color="black",URL="$MonLogger_8h.html"]; + Node15 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 -> Node16 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node16 [label="iomanip",height=0.2,width=0.4,color="grey75"]; + Node15 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node17 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node17 [label="boost/algorithm/string\l/classification.hpp",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node18 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node18 [label="sstream",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node19 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 [label="cmath",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node20 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 [label="fstream",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node21 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node21 [label="utility",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node22 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node22 [label="numeric",height=0.2,width=0.4,color="grey75"]; +} diff --git a/ProcessMonitor_8cxx__incl.map b/ProcessMonitor_8cxx__incl.map new file mode 100644 index 000000000..fa684f2c2 --- /dev/null +++ b/ProcessMonitor_8cxx__incl.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/ProcessMonitor_8cxx__incl.md5 b/ProcessMonitor_8cxx__incl.md5 new file mode 100644 index 000000000..ecc887070 --- /dev/null +++ b/ProcessMonitor_8cxx__incl.md5 @@ -0,0 +1 @@ +6c1b437c8c67de33aebf81147e3fccc6 \ No newline at end of file diff --git a/ProcessMonitor_8cxx__incl.svg b/ProcessMonitor_8cxx__incl.svg new file mode 100644 index 000000000..9c16cea95 --- /dev/null +++ b/ProcessMonitor_8cxx__incl.svg @@ -0,0 +1,360 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/ProcessMonitor.cxx + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/ProcessMonitor.cxx + + +Node2 + + +Monitoring/ProcessMonitor.h + + + + +Node1->Node2 + + + + +Node10 + +chrono + + +Node1->Node10 + + + + +Node15 + + +MonLogger.h + + + + +Node1->Node15 + + + + +Node17 + +boost/algorithm/string +/classification.hpp + + +Node1->Node17 + + + + +Node18 + +sstream + + +Node1->Node18 + + + + +Node19 + +cmath + + +Node1->Node19 + + + + +Node20 + +fstream + + +Node1->Node20 + + + + +Node21 + +utility + + +Node1->Node21 + + + + +Node22 + +numeric + + +Node1->Node22 + + + + +Node3 + +atomic + + +Node2->Node3 + + + + +Node4 + +boost/algorithm/string.hpp + + +Node2->Node4 + + + + +Node5 + +iostream + + +Node2->Node5 + + + + +Node6 + +string + + +Node2->Node6 + + + + +Node7 + +vector + + +Node2->Node7 + + + + +Node8 + +sys/resource.h + + +Node2->Node8 + + + + +Node9 + + +Monitoring/Metric.h + + + + +Node2->Node9 + + + + +Node9->Node6 + + + + +Node9->Node7 + + + + +Node9->Node10 + + + + +Node11 + +map + + +Node9->Node11 + + + + +Node12 + +regex + + +Node9->Node12 + + + + +Node13 + +variant + + +Node9->Node13 + + + + +Node14 + + +Tags.h + + + + +Node9->Node14 + + + + +Node14->Node6 + + + + +Node15->Node5 + + + + +Node15->Node10 + + + + +Node16 + +iomanip + + +Node15->Node16 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ProcessMonitor_8cxx__incl_org.svg b/ProcessMonitor_8cxx__incl_org.svg new file mode 100644 index 000000000..adc8de209 --- /dev/null +++ b/ProcessMonitor_8cxx__incl_org.svg @@ -0,0 +1,272 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/ProcessMonitor.cxx + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/ProcessMonitor.cxx + + +Node2 + + +Monitoring/ProcessMonitor.h + + + + +Node1->Node2 + + + + +Node10 + +chrono + + +Node1->Node10 + + + + +Node15 + + +MonLogger.h + + + + +Node1->Node15 + + + + +Node17 + +boost/algorithm/string +/classification.hpp + + +Node1->Node17 + + + + +Node18 + +sstream + + +Node1->Node18 + + + + +Node19 + +cmath + + +Node1->Node19 + + + + +Node20 + +fstream + + +Node1->Node20 + + + + +Node21 + +utility + + +Node1->Node21 + + + + +Node22 + +numeric + + +Node1->Node22 + + + + +Node3 + +atomic + + +Node2->Node3 + + + + +Node4 + +boost/algorithm/string.hpp + + +Node2->Node4 + + + + +Node5 + +iostream + + +Node2->Node5 + + + + +Node6 + +string + + +Node2->Node6 + + + + +Node7 + +vector + + +Node2->Node7 + + + + +Node8 + +sys/resource.h + + +Node2->Node8 + + + + +Node9 + + +Monitoring/Metric.h + + + + +Node2->Node9 + + + + +Node9->Node6 + + + + +Node9->Node7 + + + + +Node9->Node10 + + + + +Node11 + +map + + +Node9->Node11 + + + + +Node12 + +regex + + +Node9->Node12 + + + + +Node13 + +variant + + +Node9->Node13 + + + + +Node14 + + +Tags.h + + + + +Node9->Node14 + + + + +Node14->Node6 + + + + +Node15->Node5 + + + + +Node15->Node10 + + + + +Node16 + +iomanip + + +Node15->Node16 + + + + + diff --git a/ProcessMonitor_8h.html b/ProcessMonitor_8h.html new file mode 100644 index 000000000..e40e64bc5 --- /dev/null +++ b/ProcessMonitor_8h.html @@ -0,0 +1,165 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/include/Monitoring/ProcessMonitor.h File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
ProcessMonitor.h File Reference
+
+
+
#include <atomic>
+#include <boost/algorithm/string.hpp>
+#include <iostream>
+#include <string>
+#include <vector>
+#include <sys/resource.h>
+#include "Monitoring/Metric.h"
+
+Include dependency graph for ProcessMonitor.h:
+
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  o2::monitoring::ProcessMonitor
 Monitors current process and/or other processes running at the same machien. More...
 
+ + + + +

+Namespaces

 o2::monitoring
 ALICE O2 Monitoring system.
 
+

Detailed Description

+
+
+ + + + diff --git a/ProcessMonitor_8h__dep__incl.dot b/ProcessMonitor_8h__dep__incl.dot new file mode 100644 index 000000000..b89116807 --- /dev/null +++ b/ProcessMonitor_8h__dep__incl.dot @@ -0,0 +1,49 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/include/Monitoring/ProcessMonitor.h" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/include/Monitoring/ProcessMonitor.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/include/Monitoring/Monitoring.h",height=0.2,width=0.4,color="black",URL="$Monitoring_8h.html"]; + Node2 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/include/Monitoring/Monitoring\lFactory.h",height=0.2,width=0.4,color="black",URL="$MonitoringFactory_8h.html"]; + Node3 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/1-Basic.cxx",height=0.2,width=0.4,color="black",URL="$1-Basic_8cxx.html"]; + Node3 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/10-Buffering.cxx",height=0.2,width=0.4,color="black",URL="$10-Buffering_8cxx.html"]; + Node3 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/2-TaggedMetrics.cxx",height=0.2,width=0.4,color="black",URL="$2-TaggedMetrics_8cxx.html"]; + Node3 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/3-Verbosity.cxx",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/4-RateDerivedMetric.cxx",height=0.2,width=0.4,color="black",URL="$4-RateDerivedMetric_8cxx.html"]; + Node3 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/5-Benchmark.cxx",height=0.2,width=0.4,color="black",URL="$5-Benchmark_8cxx.html"]; + Node3 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/6-Increment.cxx",height=0.2,width=0.4,color="black",URL="$6-Increment_8cxx.html"]; + Node3 -> Node11 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/7-InternalBenchamrk.cxx",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node12 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/8-DbFiller.cxx",height=0.2,width=0.4,color="black",URL="$8-DbFiller_8cxx.html"]; + Node3 -> Node13 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/MonitoringFactory.cxx",height=0.2,width=0.4,color="black",URL="$MonitoringFactory_8cxx.html"]; + Node3 -> Node14 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testApMon.cxx",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node15 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testInfluxDb.cxx",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node16 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node16 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testMonitoring.cxx",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node17 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node17 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testMonitoringFactory.cxx",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node18 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node18 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testProcessMonitor.cxx",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node19 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testThreads.cxx",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node20 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Monitoring.cxx",height=0.2,width=0.4,color="black",URL="$Monitoring_8cxx.html"]; + Node1 -> Node21 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node21 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/ProcessMonitor.cxx",height=0.2,width=0.4,color="black",URL="$ProcessMonitor_8cxx.html"]; + Node1 -> Node18 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/ProcessMonitor_8h__dep__incl.map b/ProcessMonitor_8h__dep__incl.map new file mode 100644 index 000000000..50fe883c7 --- /dev/null +++ b/ProcessMonitor_8h__dep__incl.map @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/ProcessMonitor_8h__dep__incl.md5 b/ProcessMonitor_8h__dep__incl.md5 new file mode 100644 index 000000000..96d040e58 --- /dev/null +++ b/ProcessMonitor_8h__dep__incl.md5 @@ -0,0 +1 @@ +dd480bfe7455d60d4f2222fcd7b371d0 \ No newline at end of file diff --git a/ProcessMonitor_8h__dep__incl.svg b/ProcessMonitor_8h__dep__incl.svg new file mode 100644 index 000000000..f19b199d6 --- /dev/null +++ b/ProcessMonitor_8h__dep__incl.svg @@ -0,0 +1,389 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/home/travis/build/AliceO2Group/Monitoring/include/Monitoring/ProcessMonitor.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/ProcessMonitor.h + + +Node2 + + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Monitoring.h + + + + +Node1->Node2 + + + + +Node18 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testProcessMonitor.cxx + + +Node1->Node18 + + + + +Node21 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/ProcessMonitor.cxx + + + + +Node1->Node21 + + + + +Node3 + + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Monitoring +Factory.h + + + + +Node2->Node3 + + + + +Node20 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Monitoring.cxx + + + + +Node2->Node20 + + + + +Node4 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/1-Basic.cxx + + + + +Node3->Node4 + + + + +Node5 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/10-Buffering.cxx + + + + +Node3->Node5 + + + + +Node6 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/2-TaggedMetrics.cxx + + + + +Node3->Node6 + + + + +Node7 + +/home/travis/build +/AliceO2Group/Monitoring +/examples/3-Verbosity.cxx + + +Node3->Node7 + + + + +Node8 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/4-RateDerivedMetric.cxx + + + + +Node3->Node8 + + + + +Node9 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/5-Benchmark.cxx + + + + +Node3->Node9 + + + + +Node10 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/6-Increment.cxx + + + + +Node3->Node10 + + + + +Node11 + +/home/travis/build +/AliceO2Group/Monitoring +/examples/7-InternalBenchamrk.cxx + + +Node3->Node11 + + + + +Node12 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/8-DbFiller.cxx + + + + +Node3->Node12 + + + + +Node13 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/MonitoringFactory.cxx + + + + +Node3->Node13 + + + + +Node14 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testApMon.cxx + + +Node3->Node14 + + + + +Node15 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testInfluxDb.cxx + + +Node3->Node15 + + + + +Node16 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testMonitoring.cxx + + +Node3->Node16 + + + + +Node17 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testMonitoringFactory.cxx + + +Node3->Node17 + + + + +Node3->Node18 + + + + +Node19 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testThreads.cxx + + +Node3->Node19 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ProcessMonitor_8h__dep__incl_org.svg b/ProcessMonitor_8h__dep__incl_org.svg new file mode 100644 index 000000000..2bcb94b9f --- /dev/null +++ b/ProcessMonitor_8h__dep__incl_org.svg @@ -0,0 +1,301 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/include/Monitoring/ProcessMonitor.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/ProcessMonitor.h + + +Node2 + + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Monitoring.h + + + + +Node1->Node2 + + + + +Node18 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testProcessMonitor.cxx + + +Node1->Node18 + + + + +Node21 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/ProcessMonitor.cxx + + + + +Node1->Node21 + + + + +Node3 + + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Monitoring +Factory.h + + + + +Node2->Node3 + + + + +Node20 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Monitoring.cxx + + + + +Node2->Node20 + + + + +Node4 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/1-Basic.cxx + + + + +Node3->Node4 + + + + +Node5 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/10-Buffering.cxx + + + + +Node3->Node5 + + + + +Node6 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/2-TaggedMetrics.cxx + + + + +Node3->Node6 + + + + +Node7 + +/home/travis/build +/AliceO2Group/Monitoring +/examples/3-Verbosity.cxx + + +Node3->Node7 + + + + +Node8 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/4-RateDerivedMetric.cxx + + + + +Node3->Node8 + + + + +Node9 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/5-Benchmark.cxx + + + + +Node3->Node9 + + + + +Node10 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/6-Increment.cxx + + + + +Node3->Node10 + + + + +Node11 + +/home/travis/build +/AliceO2Group/Monitoring +/examples/7-InternalBenchamrk.cxx + + +Node3->Node11 + + + + +Node12 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/8-DbFiller.cxx + + + + +Node3->Node12 + + + + +Node13 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/MonitoringFactory.cxx + + + + +Node3->Node13 + + + + +Node14 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testApMon.cxx + + +Node3->Node14 + + + + +Node15 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testInfluxDb.cxx + + +Node3->Node15 + + + + +Node16 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testMonitoring.cxx + + +Node3->Node16 + + + + +Node17 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testMonitoringFactory.cxx + + +Node3->Node17 + + + + +Node3->Node18 + + + + +Node19 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testThreads.cxx + + +Node3->Node19 + + + + + diff --git a/ProcessMonitor_8h__incl.dot b/ProcessMonitor_8h__incl.dot new file mode 100644 index 000000000..698f3f1ab --- /dev/null +++ b/ProcessMonitor_8h__incl.dot @@ -0,0 +1,35 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/include/Monitoring/ProcessMonitor.h" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/include/Monitoring/ProcessMonitor.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="atomic",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="boost/algorithm/string.hpp",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="iostream",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="string",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="vector",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="sys/resource.h",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="Monitoring/Metric.h",height=0.2,width=0.4,color="black",URL="$Metric_8h.html"]; + Node8 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="chrono",height=0.2,width=0.4,color="grey75"]; + Node8 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="map",height=0.2,width=0.4,color="grey75"]; + Node8 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="regex",height=0.2,width=0.4,color="grey75"]; + Node8 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="variant",height=0.2,width=0.4,color="grey75"]; + Node8 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [label="Tags.h",height=0.2,width=0.4,color="black",URL="$Tags_8h.html"]; + Node13 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/ProcessMonitor_8h__incl.map b/ProcessMonitor_8h__incl.map new file mode 100644 index 000000000..1de6c700f --- /dev/null +++ b/ProcessMonitor_8h__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/ProcessMonitor_8h__incl.md5 b/ProcessMonitor_8h__incl.md5 new file mode 100644 index 000000000..6241b6d91 --- /dev/null +++ b/ProcessMonitor_8h__incl.md5 @@ -0,0 +1 @@ +ef8f9b0a8dba8c070abababb63b1fd05 \ No newline at end of file diff --git a/ProcessMonitor_8h__incl.svg b/ProcessMonitor_8h__incl.svg new file mode 100644 index 000000000..d4db611eb --- /dev/null +++ b/ProcessMonitor_8h__incl.svg @@ -0,0 +1,248 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/home/travis/build/AliceO2Group/Monitoring/include/Monitoring/ProcessMonitor.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/ProcessMonitor.h + + +Node2 + +atomic + + +Node1->Node2 + + + + +Node3 + +boost/algorithm/string.hpp + + +Node1->Node3 + + + + +Node4 + +iostream + + +Node1->Node4 + + + + +Node5 + +string + + +Node1->Node5 + + + + +Node6 + +vector + + +Node1->Node6 + + + + +Node7 + +sys/resource.h + + +Node1->Node7 + + + + +Node8 + + +Monitoring/Metric.h + + + + +Node1->Node8 + + + + +Node8->Node5 + + + + +Node8->Node6 + + + + +Node9 + +chrono + + +Node8->Node9 + + + + +Node10 + +map + + +Node8->Node10 + + + + +Node11 + +regex + + +Node8->Node11 + + + + +Node12 + +variant + + +Node8->Node12 + + + + +Node13 + + +Tags.h + + + + +Node8->Node13 + + + + +Node13->Node5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ProcessMonitor_8h__incl_org.svg b/ProcessMonitor_8h__incl_org.svg new file mode 100644 index 000000000..d95b6a463 --- /dev/null +++ b/ProcessMonitor_8h__incl_org.svg @@ -0,0 +1,160 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/include/Monitoring/ProcessMonitor.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/ProcessMonitor.h + + +Node2 + +atomic + + +Node1->Node2 + + + + +Node3 + +boost/algorithm/string.hpp + + +Node1->Node3 + + + + +Node4 + +iostream + + +Node1->Node4 + + + + +Node5 + +string + + +Node1->Node5 + + + + +Node6 + +vector + + +Node1->Node6 + + + + +Node7 + +sys/resource.h + + +Node1->Node7 + + + + +Node8 + + +Monitoring/Metric.h + + + + +Node1->Node8 + + + + +Node8->Node5 + + + + +Node8->Node6 + + + + +Node9 + +chrono + + +Node8->Node9 + + + + +Node10 + +map + + +Node8->Node10 + + + + +Node11 + +regex + + +Node8->Node11 + + + + +Node12 + +variant + + +Node8->Node12 + + + + +Node13 + + +Tags.h + + + + +Node8->Node13 + + + + +Node13->Node5 + + + + + diff --git a/ProcessMonitor_8h_source.html b/ProcessMonitor_8h_source.html new file mode 100644 index 000000000..8dae6df78 --- /dev/null +++ b/ProcessMonitor_8h_source.html @@ -0,0 +1,133 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/include/Monitoring/ProcessMonitor.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
ProcessMonitor.h
+
+
+Go to the documentation of this file.
1 // Copyright CERN and copyright holders of ALICE O2. This software is
2 // distributed under the terms of the GNU General Public License v3 (GPL
3 // Version 3), copied verbatim in the file "COPYING".
4 //
5 // See http://alice-o2.web.cern.ch/license for full licensing information.
6 //
7 // In applying this license CERN does not waive the privileges and immunities
8 // granted to it by virtue of its status as an Intergovernmental Organization
9 // or submit itself to any jurisdiction.
10 
15 
16 #ifndef ALICEO2_MONITORING_CORE_PROCESSMONITOR_H
17 #define ALICEO2_MONITORING_CORE_PROCESSMONITOR_H
18 
19 #include <atomic>
20 #include <boost/algorithm/string.hpp>
21 #include <iostream>
22 #include <string>
23 #include <vector>
24 #include <sys/resource.h>
25 
26 #include "Monitoring/Metric.h"
27 
28 namespace o2
29 {
31 namespace monitoring
32 {
33 
36 {
37  friend class Monitoring;
38 
39  public:
40  enum {
41  MEMORY_USAGE_PERCENTAGE = 0,
42  VIRTUAL_MEMORY_SIZE,
43  RESIDENT_SET_SIZE,
44  CPU_USED_PERCENTAGE,
45  INVOLUNTARY_CONTEXT_SWITCHING,
46  CPU_USED_ABSOLUTE,
47  AVG_RESIDENT_SET_SIZE,
48  AVG_VIRTUAL_MEMORY_SIZE,
49  AVG_CPU_USED_PERCENTAGE,
50  ACCUMULATED_CPU_TIME,
51  PSS,
52  AVAILABLE_METRICS_SIZE
53  };
54 
55  static std::vector<std::string> getAvailableMetricsNames();
56  std::vector<Metric> getPerformanceMetrics();
57 
58  public:
61 
63  ~ProcessMonitor() = default;
64 
65  void init();
66 
67  private:
68  double splitStatusLineAndRetriveValue(const std::string& line) const;
69 
71  void setTotalMemory();
72 
73  private:
74  static constexpr const char* metricsNames[] = {"memoryUsagePercentage", "virtualMemorySize", "residentSetSize",
75  "cpuUsedPercentage", "involuntaryContextSwitches", "cpuUsedAbsolute",
76  "averageResidentSetSize", "averageVirtualMemorySize", "averageCpuUsedPercentage",
77  "cpuTimeConsumedByProcess", "proportionalSetSize"};
78 
79  static constexpr unsigned int VM_SIZE_INDEX = 18;
80  static constexpr unsigned int VM_RSS_INDEX = 22;
81 
83  unsigned int mPid;
84 
86  unsigned int mTotalMemory;
87 
89  struct rusage mPreviousGetrUsage;
90 
92  std::vector<double> mVmSizeMeasurements;
93  std::vector<double> mVmRssMeasurements;
94  std::vector<uint64_t> mCpuMicroSeconds;
95  std::vector<double> mCpuPerctange;
96 
98  std::chrono::high_resolution_clock::time_point mTimeLastRun;
99 
101  std::vector<Metric> getMemoryUsage();
102 
104  Metric getPss();
105 
107  std::vector<Metric> getCpuAndContexts();
108 
109  std::vector<Metric> makeLastMeasurementAndGetMetrics();
110 };
111 
112 } // namespace monitoring
113 } // namespace o2
114 
115 #endif // ALICEO2_MONITORING_CORE_PROCESSMONITOR_H
Definition: Backend.h:23
+
Monitors current process and/or other processes running at the same machien.
Definition: ProcessMonitor.h:35
+
ProcessMonitor()
Prepares externam software commands (ps)
Definition: ProcessMonitor.cxx:22
+
Main class that collects metrics from user and dispatches them to selected monitoring backends...
Definition: Monitoring.h:46
+
Represents a metric including value, type of the value, name, timestamp and tags. ...
Definition: Metric.h:37
+
~ProcessMonitor()=default
Default destructor.
+ +
+
+ + + + diff --git a/README.md b/README.md deleted file mode 100644 index 82066f6dc..000000000 --- a/README.md +++ /dev/null @@ -1,269 +0,0 @@ -# Monitoring -[![travis-ci](https://travis-ci.com/AliceO2Group/Monitoring.svg?branch=dev)](https://travis-ci.com/AliceO2Group/Monitoring) -[![aliBuild](https://img.shields.io/badge/aliBuild-dashboard-lightgrey.svg)](https://alisw.cern.ch/dashboard/d/000000001/main-dashboard?orgId=1&var-storagename=All&var-reponame=All&var-checkname=build%2FMonitoring%2Fo2-dataflow%2F0&var-upthreshold=30m&var-minuptime=30) -[![codecov](https://codecov.io/gh/AliceO2Group/Monitoring/branch/master/graph/badge.svg)](https://codecov.io/gh/AliceO2Group/Monitoring) -[![JIRA](https://img.shields.io/badge/JIRA-issues-blue.svg)](https://alice.its.cern.ch/jira/projects/OMON) -[![doxygen](https://img.shields.io/badge/doxygen-documentation-blue.svg)](https://aliceo2group.github.io/Monitoring/) - -Monitoring module injects user custom metrics and monitors the process. It supports multiple backends, protocols and data formats. - -## Table of contents -1. [Installation](#installation) -2. [Getting started](#getting-started) -3. [Advanced features](#advanced-features) -4. [System monitoring and server-side backends installation and configuration](#system-monitoring-server-side-backends-installation-and-configuration) - -## Installation - -[Click here if you don't have aliBuild installed](https://alice-doc.github.io/alice-analysis-tutorial/building/) -
- - + Compile `Monitoring` and its dependencies via `aliBuild` -```bash -aliBuild build Monitoring --defaults o2-dataflow -``` - - + Load the environment for Monitoring (in the `alice` directory) -```bash -alienv load Monitoring/latest -``` - -## Getting started -### Monitoring instance -`Get` an instance from `MonitoringFactory` by passing backend's URI(s) as a parameter (comma separated if more than one). -The factory is accessible from `o2::monitoring` namespace. - -```cpp -#include -using namespace o2::monitoring; -std::unique_ptr monitoring = MonitoringFactory::Get("backend[-protocol]://host:port[/verbosity][?query]"); -``` - -See the table below to find `URI`s for supported backends: - -| Format | Transport | URI backend[-protocol] | URI query | Default verbosity | -| ------------ |:-----------:|:----------------------:|:-----------:| -----------------:| -| - | - | `no-op` | - | - | -| InfluxDB | UDP | `influxdb-udp` | - | `info` | -| InfluxDB | Unix socket | `influxdb-unix` | - | `info` | -| InfluxDB | StdOut | `influxdb-stdout` | - | `info` | -| InfluxDB | Kafka | `influxdb-kafka` | Kafka topic | `info` | -| InfluxDB | WebSocket | `influxdb-ws` | `token=TOKEN` | `info` | -| InfluxDB 2.x | HTTP | `influxdbv2` | `org=ORG&bucket=BUCKET&token=TOKEN` | `info` | -| ApMon | UDP | `apmon` | - | `info` | -| StdOut | - | `stdout`, `infologger` | [Prefix] | `debug` | - -### Metrics -A metric consist of 5 parameters: -- name - metric name -- values - vector of value and value name pairs -- timestamp - time of creation -- verbosity - metric "severity" -- tags - metric metadata represented as map - -| Parameter name | Type | Required | Default | -| -------------- |:--------------------------------:|:--------:| -----------------------:| -| name | string | yes | - | -| values | map<string, int/double/string/uint64_t> | no/1 | - | -| timestamp | time_point<system_clock> | no | current time | -| verbosity | Enum (Debug/Info/Prod) | no | Verbosity::Info | -| tags | map | no | host and process names | - -A metric can be constructed by providing required parameters (value and metric name, value name is set to `value`): -```cpp -Metric{10, "name"} -``` -#### Values -By default metric can be created with zero or one value (in such case value name is set to `value`). Any additional value may be added using `.addValue` method, therefore the following two metrics are identical: -```cpp -Metric{10, "name"} -Metric{"name"}.addValue(10, "value") -``` - -#### Tags -1. Metric tags -Each metric can be tagged with any number of [predefined tags](include/Monitoring/Tags.h). -In order to do so use `addTag(tags::Key, tags::Value)` or `addTag(tags::Key, unsigned short)` methods. The latter method allows assigning numeric value to a tag. - -```cpp -Metric{10, "name"}.addTag(tags::Key::Subsystem, tags::Value::QC) -``` - -See the example: [examples/2-TaggedMetrics.cxx](examples/2-TaggedMetrics.cxx). - -2. Global tags -Global tags are added to each metric sent eg. `hostname` tag is added by default by the library. - -You can add your own global tag by calling `addGlobalTag(std::string_view key, std::string_view value)` or `addGlobalTag(tags::Key, tags::Value)` on Monitoring object. - -3. Run number -Run number is special case of a global tag, its value can be overwritten at any time, therefore it benefits simplified handling: `setRunNumber(uint32_t)`. Value `0` is unique and means no run number is set. - - -### Sending metric -Pass metric object to `send` method as l-value reference: -```cpp -send({10, "name"}) -send(Metric{20, "name"}.addTag(tags::Key::CRU, 123)) -send(Metric{"throughput"}.addValue(100, "tx").addValue(200, "rx")) -``` - -See how it works in the example: [examples/1-Basic.cxx](examples/1-Basic.cxx). - -Metrics can also be injected from the command line using the o2-monitoring-send utility (self-documented). - -## Advanced features - -### Metric verbosity -There are 3 verbosity levels (the same as for backends): Debug, Info, Prod. By default it is set to `Verbosity::Info`. The default value can be overwritten using: `Metric::setDefaultVerbosity(verbosity)`. -To overwrite verbosity on per metric basis use third, optional parameter to metric constructor: -```cpp -Metric{10, "name", Verbosity::Prod} -``` - -Metrics need to match backends verbosity in order to be sent, eg. backend with `/info` verbosity will accept `Info` and `Prod` metrics only. - -### Buffering metrics -In order to avoid sending each metric separately, metrics can be temporary stored in the buffer and flushed at the most convenient moment. -This feature can be controlled with following two methods: -```cpp -monitoring->enableBuffering(const std::size_t maxSize) -... -monitoring->flushBuffer(); -``` - -`enableBuffering` takes maximum buffer size as its parameter. The buffer gets full all values are flushed automatically. - -See how it works in the example: [examples/10-Buffering.cxx](examples/10-Buffering.cxx). - -### Calculating derived values -This feature can calculate derived values. To do so, use optional `DerivedMetricMode mode` parameter of `send` method: -``` -send(Metric&& metric, [DerivedMetricMode mode]) -``` - -Two modes are available: - + `DerivedMetricMode::RATE` - rate between two following values, - + `DerivedMetricMode::INCREMENT` - sum of all passed values. - + `DerivedMetricMode::SUPPRESS` - suppresses forthcoming metric with same value, this happens until timeout is reached (configurable using `DerivedMetrics::mSuppressTimeout`) - -The derived value is generated only from the first value of the metric and it is added to the same metric with the value name suffixed with `_rate`, `_increment` accordingly. - -See how it works in the example: [examples/4-RateDerivedMetric.cxx](examples/4-RateDerivedMetric.cxx). - -### Process monitoring - -This feature provides basic performance status of the process. Note that is runs in separate thread. - -```cpp -enableProcessMonitoring([interval in seconds, {PmMeasurement list}]); -``` -List of valid measurement lists: -- `PmMeasurement::Cpu` -- `PmMeasurement::Mem` -- `PmMeasurement::Smaps` - Beware. Enabling this will trigger kernel to run `smaps_account` periodically. - -Following metrics are generated every time interval: -`PmMeasurement::Cpu`: - + **cpuUsedPercentage** - percentage of a core usage (kernel + user mode) over time interval - + **involuntaryContextSwitches** - involuntary context switches over time interval - + **cpuUsedAbsolute** - amount of time spent on process execution (in user and kernel mode) over time interval (expressed in microseconds) - -`PmMeasurement::Mem`: (Linux only) - + **memoryUsagePercentage** - ratio of the process's virtual memory to memory available on the machine - + **virtualMemorySize** - virtual memory reserved by process (expressed in kB) - + **residentSetSize** - resident set size reserved by process (expressed in kB) - -`PmMeasurement::Smaps`: (Linux only) -+ **proportionalSetSize** - count of pages it has in memory, where each page is divided by the number of processes sharing it -+ **memoryPrivateClean** - unmodified private pages -+ **memoryPrivateDirty** - modified private pages - -Additional metrics are generated at the end of process execution: -CPU measurements: - + **cpuTimeConsumedByProcess** - total amount of time spent on process execution (in user and kernel mode) (expressed in microseconds) - + **averageCpuUsedPercentage** - average percentage of a core usage over time interval - -Memory measurements: (Linux only) - + **averageResidentSetSize** - average resident set size used by process (expressed in kB) - + **averageVirtualMemorySize** - average virtual memory used by process (expressed in kB) - -### StdOut backend output format -``` -[METRIC] , -``` -The prefix (`[METRIC]`) can be changed using query component. - -### Regex verbosity policy -Overwrite metric verbosity using regex expression: -``` -Metric::setVerbosityPolicy(Verbosity verbosity, const std::regex& regex) -``` - -## System monitoring, server-side backends installation and configuration -This guide explains manual installation. For `ansible` deployment see [AliceO2Group/system-configuration](https://gitlab.cern.ch/AliceO2Group/system-configuration/tree/master/ansible) gitlab repo. - ---- - -## Receiving metrics from Monitoring system (development instructions) - -### Requirements - - Ubuntu, RHEL9, RHEL8, CS8, macOS, or CC7 with `devtoolset-9` - - Boost >= 1.83, CMake - -### Compile Monitoring library with Kafka backend - -#### Manually -- Compile `librdkafka` - ```bash - git clone -b v2.3.0 https://github.com/edenhill/librdkafka && cd librdkafka - cmake -H. -B./_cmake_build -DENABLE_LZ4_EXT=OFF -DCMAKE_INSTALL_LIBDIR=lib -DRDKAFKA_BUILD_TESTS=OFF -DRDKAFKA_BUILD_EXAMPLES=OFF -DCMAKE_INSTALL_PREFIX=~/librdkafka_install - cmake --build ./_cmake_build --target install -j - ``` -- Compile Monitoring library, make sure to define `RdKafka_DIR` and point to CMake config directory: - ```bash - git clone https://github.com/AliceO2Group/Monitoring && cd Monitoring - cmake -H. -B./_cmake_build -DRdKafka_DIR=~/librdkafka_install/lib/cmake/RdKafka/ -DCMAKE_INSTALL_PREFIX=~/Monitoring_install - cmake --build ./_cmake_build --target install -j - ``` - -#### aliBuild -- Modify `monitoring.sh`: add `- librdkafka` to "requires" -- Compile Monitoring: `aliBuild build Monitoring --defaults o2-dataflow --always-prefer-system` -- Add `Monitoring` as dependency of your project - -### Look for Monitoring library in your CMake -As `librdkafka` is optional dependency of Monitoring it is not handled by CMakeConfig, therefore you need: -```cmake -find_package(RdKafka CONFIG REQUIRED) -find_package(Monitoring CONFIG REQUIRED) -``` - -And then, link against `AliceO2::Monitoring` target. - -### Connect to Monitoring server -```cpp -#include "Monitoring/MonitoringFactory.h" -... - -std::vector topics = {""}; -auto client = MonitoringFactory::GetPullClient("", topics, ""); -for (;;) { - auto metrics = client->pull(); - if (!metrics.empty()) { - /// metric.first => topic name; metric.second => metric itself - } else { - // wait a bit if no data available - std::this_thread::sleep_for(std::chrono::milliseconds(100)); - } -``` - -Run-time parameters: -- `` - List of topics to subscribe -- `` - Kafka broker (staging or production) -- `` - unique, self-explainable string describing the client, eg. `dcs-link-status` or `its-link-status`. - -Metrics are returned in batch of maximum 100 for each pull() call. - -### Data format -Native data format is [Influx Line Protocol](https://docs.influxdata.com/influxdb/latest/reference/syntax/line-protocol/) but metrics can be converted into any format listed in here: https://docs.influxdata.com/telegraf/latest/data_formats/output/ diff --git a/TCP_8cxx.html b/TCP_8cxx.html new file mode 100644 index 000000000..8a2aabcce --- /dev/null +++ b/TCP_8cxx.html @@ -0,0 +1,151 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/Transports/TCP.cxx File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
TCP.cxx File Reference
+
+
+
#include "TCP.h"
+#include <string>
+#include <iostream>
+#include "Exceptions/MonitoringException.h"
+#include "../MonLogger.h"
+
+Include dependency graph for TCP.cxx:
+
+
+
+
+
+ + + + + + + +

+Namespaces

 o2::monitoring
 ALICE O2 Monitoring system.
 
 o2::monitoring::transports
 Monitoring transports.
 
+

Detailed Description

+
+
+ + + + diff --git a/TCP_8cxx__incl.dot b/TCP_8cxx__incl.dot new file mode 100644 index 000000000..3ccd4aae3 --- /dev/null +++ b/TCP_8cxx__incl.dot @@ -0,0 +1,37 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/src/Transports/TCP.cxx" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Transports/TCP.cxx",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="TCP.h",height=0.2,width=0.4,color="black",URL="$TCP_8h.html"]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="TransportInterface.h",height=0.2,width=0.4,color="black",URL="$TransportInterface_8h.html"]; + Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="string",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="boost/array.hpp",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="boost/asio.hpp",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="boost/algorithm/string.hpp",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="chrono",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="iostream",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="Exceptions/MonitoringException.h",height=0.2,width=0.4,color="black",URL="$MonitoringException_8h.html"]; + Node10 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="exception",height=0.2,width=0.4,color="grey75"]; + Node10 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node12 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="../MonLogger.h",height=0.2,width=0.4,color="black",URL="$MonLogger_8h.html"]; + Node12 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 -> Node13 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [label="iomanip",height=0.2,width=0.4,color="grey75"]; + Node12 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/TCP_8cxx__incl.map b/TCP_8cxx__incl.map new file mode 100644 index 000000000..50fa5c8ce --- /dev/null +++ b/TCP_8cxx__incl.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/TCP_8cxx__incl.md5 b/TCP_8cxx__incl.md5 new file mode 100644 index 000000000..9a5042e7c --- /dev/null +++ b/TCP_8cxx__incl.md5 @@ -0,0 +1 @@ +290ff6fe6e4dc82efe6381a4d4f26aa1 \ No newline at end of file diff --git a/TCP_8cxx__incl.svg b/TCP_8cxx__incl.svg new file mode 100644 index 000000000..9ee23b9c4 --- /dev/null +++ b/TCP_8cxx__incl.svg @@ -0,0 +1,264 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Transports/TCP.cxx + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/TCP.cxx + + +Node2 + + +TCP.h + + + + +Node1->Node2 + + + + +Node4 + +string + + +Node1->Node4 + + + + +Node9 + +iostream + + +Node1->Node9 + + + + +Node10 + + +Exceptions/MonitoringException.h + + + + +Node1->Node10 + + + + +Node12 + + +../MonLogger.h + + + + +Node1->Node12 + + + + +Node3 + + +TransportInterface.h + + + + +Node2->Node3 + + + + +Node2->Node4 + + + + +Node5 + +boost/array.hpp + + +Node2->Node5 + + + + +Node6 + +boost/asio.hpp + + +Node2->Node6 + + + + +Node7 + +boost/algorithm/string.hpp + + +Node2->Node7 + + + + +Node8 + +chrono + + +Node2->Node8 + + + + +Node3->Node4 + + + + +Node10->Node4 + + + + +Node11 + +exception + + +Node10->Node11 + + + + +Node12->Node8 + + + + +Node12->Node9 + + + + +Node13 + +iomanip + + +Node12->Node13 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/TCP_8cxx__incl_org.svg b/TCP_8cxx__incl_org.svg new file mode 100644 index 000000000..fbfebae26 --- /dev/null +++ b/TCP_8cxx__incl_org.svg @@ -0,0 +1,176 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Transports/TCP.cxx + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/TCP.cxx + + +Node2 + + +TCP.h + + + + +Node1->Node2 + + + + +Node4 + +string + + +Node1->Node4 + + + + +Node9 + +iostream + + +Node1->Node9 + + + + +Node10 + + +Exceptions/MonitoringException.h + + + + +Node1->Node10 + + + + +Node12 + + +../MonLogger.h + + + + +Node1->Node12 + + + + +Node3 + + +TransportInterface.h + + + + +Node2->Node3 + + + + +Node2->Node4 + + + + +Node5 + +boost/array.hpp + + +Node2->Node5 + + + + +Node6 + +boost/asio.hpp + + +Node2->Node6 + + + + +Node7 + +boost/algorithm/string.hpp + + +Node2->Node7 + + + + +Node8 + +chrono + + +Node2->Node8 + + + + +Node3->Node4 + + + + +Node10->Node4 + + + + +Node11 + +exception + + +Node10->Node11 + + + + +Node12->Node8 + + + + +Node12->Node9 + + + + +Node13 + +iomanip + + +Node12->Node13 + + + + + diff --git a/TCP_8h.html b/TCP_8h.html new file mode 100644 index 000000000..abd8026d1 --- /dev/null +++ b/TCP_8h.html @@ -0,0 +1,167 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/Transports/TCP.h File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
TCP.h File Reference
+
+
+
#include "TransportInterface.h"
+#include <boost/array.hpp>
+#include <boost/asio.hpp>
+#include <boost/algorithm/string.hpp>
+#include <chrono>
+#include <string>
+
+Include dependency graph for TCP.h:
+
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  o2::monitoring::transports::TCP
 Transport that sends string formatted metrics via TCP. More...
 
+ + + + + + + +

+Namespaces

 o2::monitoring
 ALICE O2 Monitoring system.
 
 o2::monitoring::transports
 Monitoring transports.
 
+

Detailed Description

+
+
+ + + + diff --git a/TCP_8h__dep__incl.dot b/TCP_8h__dep__incl.dot new file mode 100644 index 000000000..a458f444a --- /dev/null +++ b/TCP_8h__dep__incl.dot @@ -0,0 +1,10 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/src/Transports/TCP.h" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Transports/TCP.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Transports/TCP.cxx",height=0.2,width=0.4,color="black",URL="$TCP_8cxx.html"]; +} diff --git a/TCP_8h__dep__incl.map b/TCP_8h__dep__incl.map new file mode 100644 index 000000000..a3b97ca51 --- /dev/null +++ b/TCP_8h__dep__incl.map @@ -0,0 +1,3 @@ + + + diff --git a/TCP_8h__dep__incl.md5 b/TCP_8h__dep__incl.md5 new file mode 100644 index 000000000..3d4d11402 --- /dev/null +++ b/TCP_8h__dep__incl.md5 @@ -0,0 +1 @@ +dbbff23c3ed08b604e8ff0d963d05b93 \ No newline at end of file diff --git a/TCP_8h__dep__incl.svg b/TCP_8h__dep__incl.svg new file mode 100644 index 000000000..fd3fa2a33 --- /dev/null +++ b/TCP_8h__dep__incl.svg @@ -0,0 +1,34 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Transports/TCP.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/TCP.h + + +Node2 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/TCP.cxx + + + + +Node1->Node2 + + + + + diff --git a/TCP_8h__incl.dot b/TCP_8h__incl.dot new file mode 100644 index 000000000..58f7080ee --- /dev/null +++ b/TCP_8h__incl.dot @@ -0,0 +1,21 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/src/Transports/TCP.h" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Transports/TCP.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="TransportInterface.h",height=0.2,width=0.4,color="black",URL="$TransportInterface_8h.html"]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="string",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="boost/array.hpp",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="boost/asio.hpp",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="boost/algorithm/string.hpp",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="chrono",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/TCP_8h__incl.map b/TCP_8h__incl.map new file mode 100644 index 000000000..0f12c7e9b --- /dev/null +++ b/TCP_8h__incl.map @@ -0,0 +1,3 @@ + + + diff --git a/TCP_8h__incl.md5 b/TCP_8h__incl.md5 new file mode 100644 index 000000000..99d6cfa1c --- /dev/null +++ b/TCP_8h__incl.md5 @@ -0,0 +1 @@ +b0fec8bd04449e66763f3d389ec31b5a \ No newline at end of file diff --git a/TCP_8h__incl.svg b/TCP_8h__incl.svg new file mode 100644 index 000000000..f7f490014 --- /dev/null +++ b/TCP_8h__incl.svg @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Transports/TCP.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/TCP.h + + +Node2 + + +TransportInterface.h + + + + +Node1->Node2 + + + + +Node3 + +string + + +Node1->Node3 + + + + +Node4 + +boost/array.hpp + + +Node1->Node4 + + + + +Node5 + +boost/asio.hpp + + +Node1->Node5 + + + + +Node6 + +boost/algorithm/string.hpp + + +Node1->Node6 + + + + +Node7 + +chrono + + +Node1->Node7 + + + + +Node2->Node3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/TCP_8h__incl_org.svg b/TCP_8h__incl_org.svg new file mode 100644 index 000000000..568b7e4a6 --- /dev/null +++ b/TCP_8h__incl_org.svg @@ -0,0 +1,87 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Transports/TCP.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/TCP.h + + +Node2 + + +TransportInterface.h + + + + +Node1->Node2 + + + + +Node3 + +string + + +Node1->Node3 + + + + +Node4 + +boost/array.hpp + + +Node1->Node4 + + + + +Node5 + +boost/asio.hpp + + +Node1->Node5 + + + + +Node6 + +boost/algorithm/string.hpp + + +Node1->Node6 + + + + +Node7 + +chrono + + +Node1->Node7 + + + + +Node2->Node3 + + + + + diff --git a/TCP_8h_source.html b/TCP_8h_source.html new file mode 100644 index 000000000..38e38b250 --- /dev/null +++ b/TCP_8h_source.html @@ -0,0 +1,133 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/Transports/TCP.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
TCP.h
+
+
+Go to the documentation of this file.
1 // Copyright CERN and copyright holders of ALICE O2. This software is
2 // distributed under the terms of the GNU General Public License v3 (GPL
3 // Version 3), copied verbatim in the file "COPYING".
4 //
5 // See http://alice-o2.web.cern.ch/license for full licensing information.
6 //
7 // In applying this license CERN does not waive the privileges and immunities
8 // granted to it by virtue of its status as an Intergovernmental Organization
9 // or submit itself to any jurisdiction.
10 
15 
16 #ifndef ALICEO2_MONITORING_TRANSPORTS_TCP_H
17 #define ALICEO2_MONITORING_TRANSPORTS_TCP_H
18 
19 #include "TransportInterface.h"
20 
21 #include <boost/array.hpp>
22 #include <boost/asio.hpp>
23 #include <boost/algorithm/string.hpp>
24 #include <chrono>
25 #include <string>
26 
27 namespace o2
28 {
30 namespace monitoring
31 {
33 namespace transports
34 {
35 
37 class TCP : public TransportInterface
38 {
39  public:
43  TCP(const std::string& hostname, int port);
44 
46  ~TCP() = default;
47 
50  void send(std::string&& message) override;
51 
52  private:
54  boost::asio::io_service mIoService;
55 
57  boost::asio::ip::tcp::socket mSocket;
58 
60  boost::asio::ip::tcp::resolver::iterator mEndpoint;
61 };
62 
63 } // namespace transports
64 } // namespace monitoring
65 } // namespace o2
66 
67 #endif // ALICEO2_MONITORING_TRANSPORTS_TCP_H
Definition: Backend.h:23
+
Transport that sends string formatted metrics via TCP.
Definition: TCP.h:37
+
void send(std::string &&message) override
Definition: TCP.cxx:48
+
Transport interface for backends.
Definition: TransportInterface.h:31
+ +
TCP(const std::string &hostname, int port)
Definition: TCP.cxx:31
+
~TCP()=default
Default destructor.
+
+
+ + + + diff --git a/Tags_8h.html b/Tags_8h.html new file mode 100644 index 000000000..afbbeef8e --- /dev/null +++ b/Tags_8h.html @@ -0,0 +1,230 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/include/Monitoring/Tags.h File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Tags.h File Reference
+
+
+
#include <string>
+
+Include dependency graph for Tags.h:
+
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+
+

Go to the source code of this file.

+ + + + + +

+Namespaces

 o2::monitoring
 ALICE O2 Monitoring system.
 
+ + + + + +

+Enumerations

enum  Key : unsigned short int {
+  Hostname, +Rolename, +Name, +Detector, +
+  Subsystem, +CRU, +FLP, +EPN, +
+  Unit, +Run, +ID, +Type, +
+  CRORC, +SerialId, +Endpoint +
+ }
 
enum  Value : unsigned short int {
+  Null, +AD, +CPV, +EMC, +
+  FMD, +HMP, +MCH, +MTR, +
+  PHS, +PMD, +ITS, +T0, +
+  TOF, +TPC, +TRD, +V0, +
+  QC, +Readout, +DPL, +CRU, +
+  Bytes, +Megabytes, +Gigabytes, +Bits, +
+  Megabits, +Gigabits, +bps, +Mbps, +
+  Gbps, +Nanoseconds, +Microseconds, +Milliseconds, +
+  Seconds, +PerSecond, +PerCycle, +PerRun, +
+  Monitoring, +CRORC, +ACO +
+ }
 
+

Detailed Description

+
+
+ + + + diff --git a/Tags_8h.js b/Tags_8h.js new file mode 100644 index 000000000..f925107b6 --- /dev/null +++ b/Tags_8h.js @@ -0,0 +1,61 @@ +var Tags_8h = +[ + [ "Key", "Tags_8h.html#a99813ebb00fbd4b0a582ed39f86c052d", [ + [ "Hostname", "Tags_8h.html#a99813ebb00fbd4b0a582ed39f86c052dac8f4b8c435b3d99a66e1b91bec60737c", null ], + [ "Rolename", "Tags_8h.html#a99813ebb00fbd4b0a582ed39f86c052da9918a78c03181d189e61a6a2789d2cd3", null ], + [ "Name", "Tags_8h.html#a99813ebb00fbd4b0a582ed39f86c052da49ee3087348e8d44e1feda1917443987", null ], + [ "Detector", "Tags_8h.html#a99813ebb00fbd4b0a582ed39f86c052da0c6ae6ca582c36c0ede24f1d7dc6f26b", null ], + [ "Subsystem", "Tags_8h.html#a99813ebb00fbd4b0a582ed39f86c052dad6561d615c381cae3923ce60f6317dc9", null ], + [ "CRU", "Tags_8h.html#a99813ebb00fbd4b0a582ed39f86c052daec2446ee4dfeaffc59f3bfb3483ccea7", null ], + [ "FLP", "Tags_8h.html#a99813ebb00fbd4b0a582ed39f86c052da8579ea2fae24dc2693283535d82775c6", null ], + [ "EPN", "Tags_8h.html#a99813ebb00fbd4b0a582ed39f86c052daf21f1d950bbc2ff987beb47ff1dd077f", null ], + [ "Unit", "Tags_8h.html#a99813ebb00fbd4b0a582ed39f86c052da19c562a36aeb455d09534f93b4f5236f", null ], + [ "Run", "Tags_8h.html#a99813ebb00fbd4b0a582ed39f86c052dac5301693c4e792bcd5a479ef38fb8f8d", null ], + [ "ID", "Tags_8h.html#a99813ebb00fbd4b0a582ed39f86c052dab718adec73e04ce3ec720dd11a06a308", null ], + [ "Type", "Tags_8h.html#a99813ebb00fbd4b0a582ed39f86c052daa1fa27779242b4902f7ae3bdd5c6d508", null ], + [ "CRORC", "Tags_8h.html#a99813ebb00fbd4b0a582ed39f86c052daa367d384425efab50ebe77d6f37a9e4d", null ], + [ "SerialId", "Tags_8h.html#a99813ebb00fbd4b0a582ed39f86c052da752b338fa1a6a89186a2c09f8f001555", null ], + [ "Endpoint", "Tags_8h.html#a99813ebb00fbd4b0a582ed39f86c052da2a6ba72e93aa7fa676d07973ed2716bb", null ] + ] ], + [ "Value", "Tags_8h.html#a6a869a55e55daa12897b4eb45cbc2bed", [ + [ "Null", "Tags_8h.html#a6a869a55e55daa12897b4eb45cbc2bedabbb93ef26e3c101ff11cdd21cab08a94", null ], + [ "AD", "Tags_8h.html#a6a869a55e55daa12897b4eb45cbc2bedae182ebbc166d73366e7986813a7fc5f1", null ], + [ "CPV", "Tags_8h.html#a6a869a55e55daa12897b4eb45cbc2bedabd129bb6340aff8b7df12c3dc981b7a3", null ], + [ "EMC", "Tags_8h.html#a6a869a55e55daa12897b4eb45cbc2beda5d1f525e175a036e720f1ebb63afc152", null ], + [ "FMD", "Tags_8h.html#a6a869a55e55daa12897b4eb45cbc2beda4b25de86ef47d3b09525b1176978b34d", null ], + [ "HMP", "Tags_8h.html#a6a869a55e55daa12897b4eb45cbc2beda00f72d2c7ee28a8d8c31a13682b4e5b0", null ], + [ "MCH", "Tags_8h.html#a6a869a55e55daa12897b4eb45cbc2beda3ada88b65e2619a8410c7ec85760a343", null ], + [ "MTR", "Tags_8h.html#a6a869a55e55daa12897b4eb45cbc2beda7c6fab8b3b80d8d645c1638702cc0ce4", null ], + [ "PHS", "Tags_8h.html#a6a869a55e55daa12897b4eb45cbc2beda689bef30751f680a4df11a6d3a6bad71", null ], + [ "PMD", "Tags_8h.html#a6a869a55e55daa12897b4eb45cbc2bedaee88c9f9395cf3ec02fc0c5682f4d31e", null ], + [ "ITS", "Tags_8h.html#a6a869a55e55daa12897b4eb45cbc2bedafcdb76644228e946ce4cbed84d141a38", null ], + [ "T0", "Tags_8h.html#a6a869a55e55daa12897b4eb45cbc2bedaa48788bd63a0384007cd7d089af6c610", null ], + [ "TOF", "Tags_8h.html#a6a869a55e55daa12897b4eb45cbc2beda458617d00302a3d59c3e5691ab28c877", null ], + [ "TPC", "Tags_8h.html#a6a869a55e55daa12897b4eb45cbc2bedac4a67af0e5cf82a778d5a75ce3164e33", null ], + [ "TRD", "Tags_8h.html#a6a869a55e55daa12897b4eb45cbc2bedaff40f2d9a65669ed8ab13509d87874dc", null ], + [ "V0", "Tags_8h.html#a6a869a55e55daa12897b4eb45cbc2beda16514e6f648a594f5399a6b3a58e9c93", null ], + [ "QC", "Tags_8h.html#a6a869a55e55daa12897b4eb45cbc2beda0f66f704a6ede9639e16587e7b2164fa", null ], + [ "Readout", "Tags_8h.html#a6a869a55e55daa12897b4eb45cbc2beda883c569caf48e433fe1c53e49c1ae34c", null ], + [ "DPL", "Tags_8h.html#a6a869a55e55daa12897b4eb45cbc2bedaffbad918aa5e36b84c5d04b4f4ccee4f", null ], + [ "CRU", "Tags_8h.html#a6a869a55e55daa12897b4eb45cbc2bedaec2446ee4dfeaffc59f3bfb3483ccea7", null ], + [ "Bytes", "Tags_8h.html#a6a869a55e55daa12897b4eb45cbc2beda600e754f49b68aa0fc90a9cd64eb7051", null ], + [ "Megabytes", "Tags_8h.html#a6a869a55e55daa12897b4eb45cbc2beda2276a1b157f2813f3b65d04c0b1c56f6", null ], + [ "Gigabytes", "Tags_8h.html#a6a869a55e55daa12897b4eb45cbc2bedaf6f7ad0fd5914138fb449b9011c8de7a", null ], + [ "Bits", "Tags_8h.html#a6a869a55e55daa12897b4eb45cbc2bedaf10034efe0880222e7495496264ee1be", null ], + [ "Megabits", "Tags_8h.html#a6a869a55e55daa12897b4eb45cbc2beda77dcf778f486e4dcbe5b400bd08ac3a6", null ], + [ "Gigabits", "Tags_8h.html#a6a869a55e55daa12897b4eb45cbc2beda7f14ce7ec88d01759c134f0e98e372a0", null ], + [ "bps", "Tags_8h.html#a6a869a55e55daa12897b4eb45cbc2bedaecf6fbc4690b6ecd2245d8db1602bda7", null ], + [ "Mbps", "Tags_8h.html#a6a869a55e55daa12897b4eb45cbc2bedaa2f7c2a743a6cdf5ede1d4320346b574", null ], + [ "Gbps", "Tags_8h.html#a6a869a55e55daa12897b4eb45cbc2bedae6e66a64a195b5f506856d32a4e8031b", null ], + [ "Nanoseconds", "Tags_8h.html#a6a869a55e55daa12897b4eb45cbc2bedafba00bdab687ce01136a86bac8bac578", null ], + [ "Microseconds", "Tags_8h.html#a6a869a55e55daa12897b4eb45cbc2beda64068ed47d979c5efa036f027d656433", null ], + [ "Milliseconds", "Tags_8h.html#a6a869a55e55daa12897b4eb45cbc2beda38f246763036ccaeba7db6d563c4d821", null ], + [ "Seconds", "Tags_8h.html#a6a869a55e55daa12897b4eb45cbc2beda8f19a8c7566af54ea8981029730e5465", null ], + [ "PerSecond", "Tags_8h.html#a6a869a55e55daa12897b4eb45cbc2bedaa4edd0f660fa7ca6d5c348ecad4c04bc", null ], + [ "PerCycle", "Tags_8h.html#a6a869a55e55daa12897b4eb45cbc2beda98ce933876b8ca94d17d1f4f756b3e12", null ], + [ "PerRun", "Tags_8h.html#a6a869a55e55daa12897b4eb45cbc2beda1bf1ab0c3f5ae1178408b9696c39726f", null ], + [ "Monitoring", "Tags_8h.html#a6a869a55e55daa12897b4eb45cbc2beda423e555c5ec3885f2bb5d9d2d6627f63", null ], + [ "CRORC", "Tags_8h.html#a6a869a55e55daa12897b4eb45cbc2bedaa367d384425efab50ebe77d6f37a9e4d", null ], + [ "ACO", "Tags_8h.html#a6a869a55e55daa12897b4eb45cbc2beda65756f87700529eeed641ce1af7cc709", null ] + ] ] +]; \ No newline at end of file diff --git a/Tags_8h__dep__incl.dot b/Tags_8h__dep__incl.dot new file mode 100644 index 000000000..3204738a8 --- /dev/null +++ b/Tags_8h__dep__incl.dot @@ -0,0 +1,86 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/include/Monitoring/Tags.h" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/include/Monitoring/Tags.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/include/Monitoring/Metric.h",height=0.2,width=0.4,color="black",URL="$Metric_8h.html"]; + Node2 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/include/Monitoring/Backend.h",height=0.2,width=0.4,color="black",URL="$Backend_8h.html"]; + Node3 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/include/Monitoring/Monitoring.h",height=0.2,width=0.4,color="black",URL="$Monitoring_8h.html"]; + Node4 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/include/Monitoring/Monitoring\lFactory.h",height=0.2,width=0.4,color="black",URL="$MonitoringFactory_8h.html"]; + Node5 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/1-Basic.cxx",height=0.2,width=0.4,color="black",URL="$1-Basic_8cxx.html"]; + Node5 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/10-Buffering.cxx",height=0.2,width=0.4,color="black",URL="$10-Buffering_8cxx.html"]; + Node5 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/2-TaggedMetrics.cxx",height=0.2,width=0.4,color="black",URL="$2-TaggedMetrics_8cxx.html"]; + Node5 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/3-Verbosity.cxx",height=0.2,width=0.4,color="grey75"]; + Node5 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/4-RateDerivedMetric.cxx",height=0.2,width=0.4,color="black",URL="$4-RateDerivedMetric_8cxx.html"]; + Node5 -> Node11 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/5-Benchmark.cxx",height=0.2,width=0.4,color="black",URL="$5-Benchmark_8cxx.html"]; + Node5 -> Node12 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/6-Increment.cxx",height=0.2,width=0.4,color="black",URL="$6-Increment_8cxx.html"]; + Node5 -> Node13 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/7-InternalBenchamrk.cxx",height=0.2,width=0.4,color="grey75"]; + Node5 -> Node14 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/examples/8-DbFiller.cxx",height=0.2,width=0.4,color="black",URL="$8-DbFiller_8cxx.html"]; + Node5 -> Node15 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/MonitoringFactory.cxx",height=0.2,width=0.4,color="black",URL="$MonitoringFactory_8cxx.html"]; + Node5 -> Node16 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node16 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testApMon.cxx",height=0.2,width=0.4,color="grey75"]; + Node5 -> Node17 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node17 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testInfluxDb.cxx",height=0.2,width=0.4,color="grey75"]; + Node5 -> Node18 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node18 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testMonitoring.cxx",height=0.2,width=0.4,color="grey75"]; + Node5 -> Node19 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node19 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testMonitoringFactory.cxx",height=0.2,width=0.4,color="grey75"]; + Node5 -> Node20 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node20 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testProcessMonitor.cxx",height=0.2,width=0.4,color="grey75"]; + Node5 -> Node21 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node21 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testThreads.cxx",height=0.2,width=0.4,color="grey75"]; + Node4 -> Node22 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node22 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Monitoring.cxx",height=0.2,width=0.4,color="black",URL="$Monitoring_8cxx.html"]; + Node3 -> Node23 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node23 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Backends/ApMonBackend.h",height=0.2,width=0.4,color="black",URL="$ApMonBackend_8h.html"]; + Node23 -> Node24 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node24 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Backends/ApMonBackend.cxx",height=0.2,width=0.4,color="black",URL="$ApMonBackend_8cxx.html"]; + Node3 -> Node25 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node25 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Backends/InfluxDB.h",height=0.2,width=0.4,color="black",URL="$InfluxDB_8h.html"]; + Node25 -> Node26 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node26 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Backends/InfluxDB.cxx",height=0.2,width=0.4,color="black",URL="$InfluxDB_8cxx.html"]; + Node25 -> Node15 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 -> Node27 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node27 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Backends/Noop.h",height=0.2,width=0.4,color="black",URL="$Noop_8h.html"]; + Node27 -> Node15 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node27 -> Node28 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node28 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testNoop.cxx",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node29 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node29 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Backends/StdOut.h",height=0.2,width=0.4,color="black",URL="$Backends_2StdOut_8h_source.html"]; + Node29 -> Node30 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node30 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Backends/StdOut.cxx",height=0.2,width=0.4,color="grey75"]; + Node29 -> Node15 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 -> Node31 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node31 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/include/Monitoring/DerivedMetrics.h",height=0.2,width=0.4,color="black",URL="$DerivedMetrics_8h.html"]; + Node31 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node31 -> Node32 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node32 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/DerivedMetrics.cxx",height=0.2,width=0.4,color="black",URL="$DerivedMetrics_8cxx.html"]; + Node31 -> Node33 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node33 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testDerived.cxx",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node34 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node34 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/include/Monitoring/ProcessMonitor.h",height=0.2,width=0.4,color="black",URL="$ProcessMonitor_8h.html"]; + Node34 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node34 -> Node35 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node35 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/ProcessMonitor.cxx",height=0.2,width=0.4,color="black",URL="$ProcessMonitor_8cxx.html"]; + Node34 -> Node20 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 -> Node36 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node36 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Metric.cxx",height=0.2,width=0.4,color="black",URL="$Metric_8cxx.html"]; + Node2 -> Node37 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node37 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/test/testMetric.cxx",height=0.2,width=0.4,color="grey75"]; +} diff --git a/Tags_8h__dep__incl.map b/Tags_8h__dep__incl.map new file mode 100644 index 000000000..68c6bce33 --- /dev/null +++ b/Tags_8h__dep__incl.map @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Tags_8h__dep__incl.md5 b/Tags_8h__dep__incl.md5 new file mode 100644 index 000000000..173e3f433 --- /dev/null +++ b/Tags_8h__dep__incl.md5 @@ -0,0 +1 @@ +f641ccbbd0ed6d5084f577d1463cde4c \ No newline at end of file diff --git a/Tags_8h__dep__incl.svg b/Tags_8h__dep__incl.svg new file mode 100644 index 000000000..62559c151 --- /dev/null +++ b/Tags_8h__dep__incl.svg @@ -0,0 +1,642 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/home/travis/build/AliceO2Group/Monitoring/include/Monitoring/Tags.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Tags.h + + +Node2 + + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Metric.h + + + + +Node1->Node2 + + + + +Node3 + + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Backend.h + + + + +Node2->Node3 + + + + +Node31 + + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/DerivedMetrics.h + + + + +Node2->Node31 + + + + +Node34 + + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/ProcessMonitor.h + + + + +Node2->Node34 + + + + +Node36 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Metric.cxx + + + + +Node2->Node36 + + + + +Node37 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testMetric.cxx + + +Node2->Node37 + + + + +Node4 + + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Monitoring.h + + + + +Node3->Node4 + + + + +Node23 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/ApMonBackend.h + + + + +Node3->Node23 + + + + +Node25 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/InfluxDB.h + + + + +Node3->Node25 + + + + +Node27 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/Noop.h + + + + +Node3->Node27 + + + + +Node29 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/StdOut.h + + + + +Node3->Node29 + + + + +Node5 + + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Monitoring +Factory.h + + + + +Node4->Node5 + + + + +Node22 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Monitoring.cxx + + + + +Node4->Node22 + + + + +Node6 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/1-Basic.cxx + + + + +Node5->Node6 + + + + +Node7 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/10-Buffering.cxx + + + + +Node5->Node7 + + + + +Node8 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/2-TaggedMetrics.cxx + + + + +Node5->Node8 + + + + +Node9 + +/home/travis/build +/AliceO2Group/Monitoring +/examples/3-Verbosity.cxx + + +Node5->Node9 + + + + +Node10 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/4-RateDerivedMetric.cxx + + + + +Node5->Node10 + + + + +Node11 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/5-Benchmark.cxx + + + + +Node5->Node11 + + + + +Node12 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/6-Increment.cxx + + + + +Node5->Node12 + + + + +Node13 + +/home/travis/build +/AliceO2Group/Monitoring +/examples/7-InternalBenchamrk.cxx + + +Node5->Node13 + + + + +Node14 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/8-DbFiller.cxx + + + + +Node5->Node14 + + + + +Node15 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/MonitoringFactory.cxx + + + + +Node5->Node15 + + + + +Node16 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testApMon.cxx + + +Node5->Node16 + + + + +Node17 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testInfluxDb.cxx + + +Node5->Node17 + + + + +Node18 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testMonitoring.cxx + + +Node5->Node18 + + + + +Node19 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testMonitoringFactory.cxx + + +Node5->Node19 + + + + +Node20 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testProcessMonitor.cxx + + +Node5->Node20 + + + + +Node21 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testThreads.cxx + + +Node5->Node21 + + + + +Node24 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/ApMonBackend.cxx + + + + +Node23->Node24 + + + + +Node25->Node15 + + + + +Node26 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/InfluxDB.cxx + + + + +Node25->Node26 + + + + +Node27->Node15 + + + + +Node28 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testNoop.cxx + + +Node27->Node28 + + + + +Node29->Node15 + + + + +Node30 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/StdOut.cxx + + +Node29->Node30 + + + + +Node31->Node4 + + + + +Node32 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/DerivedMetrics.cxx + + + + +Node31->Node32 + + + + +Node33 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testDerived.cxx + + +Node31->Node33 + + + + +Node34->Node4 + + + + +Node34->Node20 + + + + +Node35 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/ProcessMonitor.cxx + + + + +Node34->Node35 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Tags_8h__dep__incl_org.svg b/Tags_8h__dep__incl_org.svg new file mode 100644 index 000000000..8daae52c2 --- /dev/null +++ b/Tags_8h__dep__incl_org.svg @@ -0,0 +1,554 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/include/Monitoring/Tags.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Tags.h + + +Node2 + + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Metric.h + + + + +Node1->Node2 + + + + +Node3 + + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Backend.h + + + + +Node2->Node3 + + + + +Node31 + + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/DerivedMetrics.h + + + + +Node2->Node31 + + + + +Node34 + + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/ProcessMonitor.h + + + + +Node2->Node34 + + + + +Node36 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Metric.cxx + + + + +Node2->Node36 + + + + +Node37 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testMetric.cxx + + +Node2->Node37 + + + + +Node4 + + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Monitoring.h + + + + +Node3->Node4 + + + + +Node23 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/ApMonBackend.h + + + + +Node3->Node23 + + + + +Node25 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/InfluxDB.h + + + + +Node3->Node25 + + + + +Node27 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/Noop.h + + + + +Node3->Node27 + + + + +Node29 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/StdOut.h + + + + +Node3->Node29 + + + + +Node5 + + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Monitoring +Factory.h + + + + +Node4->Node5 + + + + +Node22 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Monitoring.cxx + + + + +Node4->Node22 + + + + +Node6 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/1-Basic.cxx + + + + +Node5->Node6 + + + + +Node7 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/10-Buffering.cxx + + + + +Node5->Node7 + + + + +Node8 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/2-TaggedMetrics.cxx + + + + +Node5->Node8 + + + + +Node9 + +/home/travis/build +/AliceO2Group/Monitoring +/examples/3-Verbosity.cxx + + +Node5->Node9 + + + + +Node10 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/4-RateDerivedMetric.cxx + + + + +Node5->Node10 + + + + +Node11 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/5-Benchmark.cxx + + + + +Node5->Node11 + + + + +Node12 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/6-Increment.cxx + + + + +Node5->Node12 + + + + +Node13 + +/home/travis/build +/AliceO2Group/Monitoring +/examples/7-InternalBenchamrk.cxx + + +Node5->Node13 + + + + +Node14 + + +/home/travis/build +/AliceO2Group/Monitoring +/examples/8-DbFiller.cxx + + + + +Node5->Node14 + + + + +Node15 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/MonitoringFactory.cxx + + + + +Node5->Node15 + + + + +Node16 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testApMon.cxx + + +Node5->Node16 + + + + +Node17 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testInfluxDb.cxx + + +Node5->Node17 + + + + +Node18 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testMonitoring.cxx + + +Node5->Node18 + + + + +Node19 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testMonitoringFactory.cxx + + +Node5->Node19 + + + + +Node20 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testProcessMonitor.cxx + + +Node5->Node20 + + + + +Node21 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testThreads.cxx + + +Node5->Node21 + + + + +Node24 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/ApMonBackend.cxx + + + + +Node23->Node24 + + + + +Node25->Node15 + + + + +Node26 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/InfluxDB.cxx + + + + +Node25->Node26 + + + + +Node27->Node15 + + + + +Node28 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testNoop.cxx + + +Node27->Node28 + + + + +Node29->Node15 + + + + +Node30 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/StdOut.cxx + + +Node29->Node30 + + + + +Node31->Node4 + + + + +Node32 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/DerivedMetrics.cxx + + + + +Node31->Node32 + + + + +Node33 + +/home/travis/build +/AliceO2Group/Monitoring +/test/testDerived.cxx + + +Node31->Node33 + + + + +Node34->Node4 + + + + +Node34->Node20 + + + + +Node35 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/ProcessMonitor.cxx + + + + +Node34->Node35 + + + + + diff --git a/Tags_8h__incl.dot b/Tags_8h__incl.dot new file mode 100644 index 000000000..6069c1409 --- /dev/null +++ b/Tags_8h__incl.dot @@ -0,0 +1,10 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/include/Monitoring/Tags.h" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/include/Monitoring/Tags.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="string",height=0.2,width=0.4,color="grey75"]; +} diff --git a/Tags_8h__incl.map b/Tags_8h__incl.map new file mode 100644 index 000000000..c015a2a7e --- /dev/null +++ b/Tags_8h__incl.map @@ -0,0 +1,2 @@ + + diff --git a/Tags_8h__incl.md5 b/Tags_8h__incl.md5 new file mode 100644 index 000000000..786db54df --- /dev/null +++ b/Tags_8h__incl.md5 @@ -0,0 +1 @@ +2c3b672dce30043450192a1181f69e16 \ No newline at end of file diff --git a/Tags_8h__incl.svg b/Tags_8h__incl.svg new file mode 100644 index 000000000..9e037a4e1 --- /dev/null +++ b/Tags_8h__incl.svg @@ -0,0 +1,29 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/include/Monitoring/Tags.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/include/Monitoring/Tags.h + + +Node2 + +string + + +Node1->Node2 + + + + + diff --git a/Tags_8h_source.html b/Tags_8h_source.html new file mode 100644 index 000000000..445948ea3 --- /dev/null +++ b/Tags_8h_source.html @@ -0,0 +1,129 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/include/Monitoring/Tags.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Tags.h
+
+
+Go to the documentation of this file.
1 // Copyright CERN and copyright holders of ALICE O2. This software is
2 // distributed under the terms of the GNU General Public License v3 (GPL
3 // Version 3), copied verbatim in the file "COPYING".
4 //
5 // See http://alice-o2.web.cern.ch/license for full licensing information.
6 //
7 // In applying this license CERN does not waive the privileges and immunities
8 // granted to it by virtue of its status as an Intergovernmental Organization
9 // or submit itself to any jurisdiction.
10 
15 
16 #ifndef ALICEO2_MONITORING_TAG_H
17 #define ALICEO2_MONITORING_TAG_H
18 
19 #include <string>
20 
21 namespace o2
22 {
24 namespace monitoring
25 {
26 
27 namespace tags
28 {
29 using namespace std::string_view_literals;
30 
31 // Tag keys
32 enum class Key : unsigned short int {
33  Hostname,
34  Rolename,
35  Name,
36  Detector,
37  Subsystem,
38  CRU,
39  FLP,
40  EPN,
41  Unit,
42  Run,
43  ID,
44  Type,
45  CRORC,
46  SerialId,
47  Endpoint
48 };
49 
51 static constexpr std::array<std::string_view, 15> TAG_KEY = {
52  "hostname"sv,
53  "rolenane"sv,
54  "name"sv,
55  "detector"sv,
56  "subsystem"sv,
57  "CRU"sv,
58  "FLP"sv,
59  "EPN"sv,
60  "unit"sv,
61  "run"sv,
62  "id"sv,
63  "type"sv,
64  "CRORC"sv,
65  "serialId"sv,
66  "endpoint"sv
67 };
68 
69 // Tag values
70 enum class Value : unsigned short int {
71  Null,
72  AD, // 1
73  CPV, // 2
74  EMC, // 3
75  FMD, // 4
76  HMP, // 5
77  MCH, // 6
78  MTR, // 7
79  PHS, // 8
80  PMD, // 9
81  ITS, // 10
82  T0, // 11
83  TOF, // 12
84  TPC, // 13
85  TRD, // 14
86  V0, // 15
87  QC, // 16
88  Readout, // 17
89  DPL, // 18
90  CRU, // 19
91  Bytes, // 20
92  Megabytes, // 21
93  Gigabytes, // 22
94  Bits, // 23
95  Megabits, // 24
96  Gigabits, // 25
97  bps, // 26
98  Mbps, // 27
99  Gbps, // 28
100  Nanoseconds, // 29
101  Microseconds, // 30
102  Milliseconds, // 31
103  Seconds, // 32
104  PerSecond, // 33
105  PerCycle, // 34
106  PerRun, // 35
107  Monitoring, // 36
108  CRORC, // 37
109  ACO // 38
110 };
111 
112 // Tag value array
113 static constexpr std::array<std::string_view, 39> TAG_VALUE = {{
114  "Null"sv,
115  "AD"sv, // 1
116  "CPV"sv, // 2
117  "EMC"sv, // 3
118  "FMD"sv, // 4
119  "HMP"sv, // 5
120  "MCH"sv, // 6
121  "MTR"sv, // 7
122  "PHS"sv, // 8
123  "PHS"sv, // 9
124  "PMD"sv, // 10
125  "ITS"sv, // 11
126  "TOF"sv, // 12
127  "TPC"sv, // 13
128  "TRD"sv, // 14
129  "V0"sv, // 15
130  "QC"sv, // 16
131  "Readout"sv, // 17
132  "DPL"sv, // 18
133  "CRU"sv, // 19
134  "B"sv, // 20
135  "MB"sv, // 21
136  "GB"sv, // 22
137  "b"sv, // 23
138  "Mb"sv, // 24
139  "Gb"sv, // 25
140  "bps"sv, // 26
141  "Mbps"sv, // 27
142  "Gbps"sv, // 28
143  "ns"sv, // 29
144  "us"sv, // 30
145  "ms"sv, // 31
146  "s"sv, // 32
147  "ps"sv, // 33
148  "pcycle"sv, // 34
149  "prun"sv, // 35
150  "monitoring"sv, // 36
151  "CRORC"sv, // 37
152  "ACO"sv // 38
153 }};
154 
155 static constexpr std::string_view GetValue(const int value)
156 {
157  return TAG_VALUE[value];
158 }
159 
160 } // namespace tags
161 } // namespace monitoring
162 } // namespace o2
163 
164 #endif // ALICEO2_MONITORING_TAG_H
Definition: Backend.h:23
+ +
Monitoring and monitoring backends factory.
Definition: MonitoringFactory.h:28
+
+
+ + + + diff --git a/TransportInterface_8h.html b/TransportInterface_8h.html new file mode 100644 index 000000000..d605e584c --- /dev/null +++ b/TransportInterface_8h.html @@ -0,0 +1,162 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/Transports/TransportInterface.h File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
TransportInterface.h File Reference
+
+
+
#include <string>
+
+Include dependency graph for TransportInterface.h:
+
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  o2::monitoring::transports::TransportInterface
 Transport interface for backends. More...
 
+ + + + + + + +

+Namespaces

 o2::monitoring
 ALICE O2 Monitoring system.
 
 o2::monitoring::transports
 Monitoring transports.
 
+

Detailed Description

+
+
+ + + + diff --git a/TransportInterface_8h__dep__incl.dot b/TransportInterface_8h__dep__incl.dot new file mode 100644 index 000000000..a32aedb5e --- /dev/null +++ b/TransportInterface_8h__dep__incl.dot @@ -0,0 +1,41 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/src/Transports/TransportInterface.h" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Transports/TransportInterface.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Backends/InfluxDB.h",height=0.2,width=0.4,color="black",URL="$InfluxDB_8h.html"]; + Node2 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Backends/InfluxDB.cxx",height=0.2,width=0.4,color="black",URL="$InfluxDB_8cxx.html"]; + Node2 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/MonitoringFactory.cxx",height=0.2,width=0.4,color="black",URL="$MonitoringFactory_8cxx.html"]; + Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Transports/UDP.h",height=0.2,width=0.4,color="black",URL="$UDP_8h.html"]; + Node5 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Transports/UDP.cxx",height=0.2,width=0.4,color="black",URL="$UDP_8cxx.html"]; + Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Transports/Unix.h",height=0.2,width=0.4,color="black",URL="$Unix_8h.html"]; + Node7 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 -> Node8 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Transports/Unix.cxx",height=0.2,width=0.4,color="black",URL="$Unix_8cxx.html"]; + Node1 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Transports/StdOut.h",height=0.2,width=0.4,color="black",URL="$Transports_2StdOut_8h_source.html"]; + Node9 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Transports/StdOut.cxx",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node11 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Transports/HTTP.h",height=0.2,width=0.4,color="black",URL="$HTTP_8h.html"]; + Node11 -> Node12 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node12 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Transports/HTTP.cxx",height=0.2,width=0.4,color="black",URL="$HTTP_8cxx.html"]; + Node1 -> Node13 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Transports/Kafka.h",height=0.2,width=0.4,color="black",URL="$Kafka_8h.html"]; + Node13 -> Node14 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Transports/Kafka.cxx",height=0.2,width=0.4,color="black",URL="$Kafka_8cxx.html"]; + Node1 -> Node15 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Transports/TCP.h",height=0.2,width=0.4,color="black",URL="$TCP_8h.html"]; + Node15 -> Node16 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node16 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Transports/TCP.cxx",height=0.2,width=0.4,color="black",URL="$TCP_8cxx.html"]; +} diff --git a/TransportInterface_8h__dep__incl.map b/TransportInterface_8h__dep__incl.map new file mode 100644 index 000000000..ae51f7e8f --- /dev/null +++ b/TransportInterface_8h__dep__incl.map @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/TransportInterface_8h__dep__incl.md5 b/TransportInterface_8h__dep__incl.md5 new file mode 100644 index 000000000..20e53b982 --- /dev/null +++ b/TransportInterface_8h__dep__incl.md5 @@ -0,0 +1 @@ +5f9437c4872260e2c1d1470677e55229 \ No newline at end of file diff --git a/TransportInterface_8h__dep__incl.svg b/TransportInterface_8h__dep__incl.svg new file mode 100644 index 000000000..0cea861b7 --- /dev/null +++ b/TransportInterface_8h__dep__incl.svg @@ -0,0 +1,344 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Transports/TransportInterface.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/TransportInterface.h + + +Node2 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/InfluxDB.h + + + + +Node1->Node2 + + + + +Node5 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/UDP.h + + + + +Node1->Node5 + + + + +Node7 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/Unix.h + + + + +Node1->Node7 + + + + +Node9 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/StdOut.h + + + + +Node1->Node9 + + + + +Node11 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/HTTP.h + + + + +Node1->Node11 + + + + +Node13 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/Kafka.h + + + + +Node1->Node13 + + + + +Node15 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/TCP.h + + + + +Node1->Node15 + + + + +Node3 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/InfluxDB.cxx + + + + +Node2->Node3 + + + + +Node4 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/MonitoringFactory.cxx + + + + +Node2->Node4 + + + + +Node5->Node4 + + + + +Node6 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/UDP.cxx + + + + +Node5->Node6 + + + + +Node7->Node4 + + + + +Node8 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/Unix.cxx + + + + +Node7->Node8 + + + + +Node9->Node4 + + + + +Node10 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/StdOut.cxx + + +Node9->Node10 + + + + +Node12 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/HTTP.cxx + + + + +Node11->Node12 + + + + +Node14 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/Kafka.cxx + + + + +Node13->Node14 + + + + +Node16 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/TCP.cxx + + + + +Node15->Node16 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/TransportInterface_8h__dep__incl_org.svg b/TransportInterface_8h__dep__incl_org.svg new file mode 100644 index 000000000..eb87d5de1 --- /dev/null +++ b/TransportInterface_8h__dep__incl_org.svg @@ -0,0 +1,256 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Transports/TransportInterface.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/TransportInterface.h + + +Node2 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/InfluxDB.h + + + + +Node1->Node2 + + + + +Node5 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/UDP.h + + + + +Node1->Node5 + + + + +Node7 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/Unix.h + + + + +Node1->Node7 + + + + +Node9 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/StdOut.h + + + + +Node1->Node9 + + + + +Node11 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/HTTP.h + + + + +Node1->Node11 + + + + +Node13 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/Kafka.h + + + + +Node1->Node13 + + + + +Node15 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/TCP.h + + + + +Node1->Node15 + + + + +Node3 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Backends/InfluxDB.cxx + + + + +Node2->Node3 + + + + +Node4 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/MonitoringFactory.cxx + + + + +Node2->Node4 + + + + +Node5->Node4 + + + + +Node6 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/UDP.cxx + + + + +Node5->Node6 + + + + +Node7->Node4 + + + + +Node8 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/Unix.cxx + + + + +Node7->Node8 + + + + +Node9->Node4 + + + + +Node10 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/StdOut.cxx + + +Node9->Node10 + + + + +Node12 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/HTTP.cxx + + + + +Node11->Node12 + + + + +Node14 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/Kafka.cxx + + + + +Node13->Node14 + + + + +Node16 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/TCP.cxx + + + + +Node15->Node16 + + + + + diff --git a/TransportInterface_8h__incl.dot b/TransportInterface_8h__incl.dot new file mode 100644 index 000000000..c835489d1 --- /dev/null +++ b/TransportInterface_8h__incl.dot @@ -0,0 +1,10 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/src/Transports/TransportInterface.h" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Transports/TransportInterface.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="string",height=0.2,width=0.4,color="grey75"]; +} diff --git a/TransportInterface_8h__incl.map b/TransportInterface_8h__incl.map new file mode 100644 index 000000000..e077bf179 --- /dev/null +++ b/TransportInterface_8h__incl.map @@ -0,0 +1,2 @@ + + diff --git a/TransportInterface_8h__incl.md5 b/TransportInterface_8h__incl.md5 new file mode 100644 index 000000000..5ff38c171 --- /dev/null +++ b/TransportInterface_8h__incl.md5 @@ -0,0 +1 @@ +7b72bd1f8f159ee09d68593001f18cc0 \ No newline at end of file diff --git a/TransportInterface_8h__incl.svg b/TransportInterface_8h__incl.svg new file mode 100644 index 000000000..2f6c8fa55 --- /dev/null +++ b/TransportInterface_8h__incl.svg @@ -0,0 +1,29 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Transports/TransportInterface.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/TransportInterface.h + + +Node2 + +string + + +Node1->Node2 + + + + + diff --git a/TransportInterface_8h_source.html b/TransportInterface_8h_source.html new file mode 100644 index 000000000..f8610e5a4 --- /dev/null +++ b/TransportInterface_8h_source.html @@ -0,0 +1,129 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/Transports/TransportInterface.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
TransportInterface.h
+
+
+Go to the documentation of this file.
1 // Copyright CERN and copyright holders of ALICE O2. This software is
2 // distributed under the terms of the GNU General Public License v3 (GPL
3 // Version 3), copied verbatim in the file "COPYING".
4 //
5 // See http://alice-o2.web.cern.ch/license for full licensing information.
6 //
7 // In applying this license CERN does not waive the privileges and immunities
8 // granted to it by virtue of its status as an Intergovernmental Organization
9 // or submit itself to any jurisdiction.
10 
15 
16 #ifndef ALICEO2_MONITORING_TRANSPORTS_TRANSPORTINTERFACE_H
17 #define ALICEO2_MONITORING_TRANSPORTS_TRANSPORTINTERFACE_H
18 
19 #include <string>
20 
21 namespace o2
22 {
24 namespace monitoring
25 {
27 namespace transports
28 {
29 
32 {
33  public:
34  TransportInterface() = default;
35 
36  virtual ~TransportInterface() = default;
37 
40  virtual void send(std::string&& message) = 0;
41 };
42 
43 } // namespace transports
44 } // namespace monitoring
45 } // namespace o2
46 
47 #endif // ALICEO2_MONITORING_TRANSPORTS_TRANSPORTINTERFACE_H
virtual void send(std::string &&message)=0
+
Definition: Backend.h:23
+
Transport interface for backends.
Definition: TransportInterface.h:31
+
+
+ + + + diff --git a/Transports_2StdOut_8h_source.html b/Transports_2StdOut_8h_source.html new file mode 100644 index 000000000..dfffb5224 --- /dev/null +++ b/Transports_2StdOut_8h_source.html @@ -0,0 +1,134 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/Transports/StdOut.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
StdOut.h
+
+
+
1 // Copyright CERN and copyright holders of ALICE O2. This software is
2 // distributed under the terms of the GNU General Public License v3 (GPL
3 // Version 3), copied verbatim in the file "COPYING".
4 //
5 // See http://alice-o2.web.cern.ch/license for full licensing information.
6 //
7 // In applying this license CERN does not waive the privileges and immunities
8 // granted to it by virtue of its status as an Intergovernmental Organization
9 // or submit itself to any jurisdiction.
10 
15 
16 #ifndef ALICEO2_MONITORING_TRANSPORTS_STDOUT_H
17 #define ALICEO2_MONITORING_TRANSPORTS_STDOUT_H
18 
19 #include "TransportInterface.h"
20 
21 #include <chrono>
22 #include <string>
23 
24 namespace o2
25 {
27 namespace monitoring
28 {
30 namespace transports
31 {
32 
34 class StdOut : public TransportInterface
35 {
36  public:
38  StdOut() = default;
39 
41  ~StdOut() = default;
42 
45  void send(std::string&& message) override;
46 
48  template <typename T>
49  StdOut& operator<<(const T& msg);
50 };
51 
52 } // namespace transports
53 } // namespace monitoring
54 } // namespace o2
55 
56 #endif // ALICEO2_MONITORING_TRANSPORTS_STDOUT_H
Definition: Backend.h:23
+
Transport that sends string formatted metrics via StdOut.
Definition: StdOut.h:34
+
Transport interface for backends.
Definition: TransportInterface.h:31
+ +
StdOut & operator<<(const T &msg)
Overload stream operator.
Definition: StdOut.cxx:35
+
~StdOut()=default
Default destructor.
+
void send(std::string &&message) override
Definition: StdOut.cxx:29
+
StdOut()=default
Constructor.
+
+
+ + + + diff --git a/UDP_8cxx.html b/UDP_8cxx.html new file mode 100644 index 000000000..997c0777b --- /dev/null +++ b/UDP_8cxx.html @@ -0,0 +1,149 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/Transports/UDP.cxx File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
UDP.cxx File Reference
+
+
+
#include "UDP.h"
+#include <string>
+#include "../MonLogger.h"
+
+Include dependency graph for UDP.cxx:
+
+
+
+
+
+ + + + + + + +

+Namespaces

 o2::monitoring
 ALICE O2 Monitoring system.
 
 o2::monitoring::transports
 Monitoring transports.
 
+

Detailed Description

+
+
+ + + + diff --git a/UDP_8cxx__incl.dot b/UDP_8cxx__incl.dot new file mode 100644 index 000000000..7a5516d9e --- /dev/null +++ b/UDP_8cxx__incl.dot @@ -0,0 +1,31 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/src/Transports/UDP.cxx" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Transports/UDP.cxx",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="UDP.h",height=0.2,width=0.4,color="black",URL="$UDP_8h.html"]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="TransportInterface.h",height=0.2,width=0.4,color="black",URL="$TransportInterface_8h.html"]; + Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="string",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="boost/array.hpp",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="boost/asio.hpp",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="boost/algorithm/string.hpp",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="chrono",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="../MonLogger.h",height=0.2,width=0.4,color="black",URL="$MonLogger_8h.html"]; + Node9 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="iomanip",height=0.2,width=0.4,color="grey75"]; + Node9 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="iostream",height=0.2,width=0.4,color="grey75"]; +} diff --git a/UDP_8cxx__incl.map b/UDP_8cxx__incl.map new file mode 100644 index 000000000..e6d4e487d --- /dev/null +++ b/UDP_8cxx__incl.map @@ -0,0 +1,5 @@ + + + + + diff --git a/UDP_8cxx__incl.md5 b/UDP_8cxx__incl.md5 new file mode 100644 index 000000000..a0a83669f --- /dev/null +++ b/UDP_8cxx__incl.md5 @@ -0,0 +1 @@ +fc51c835c0c3f180b3fbae860e5f7dec \ No newline at end of file diff --git a/UDP_8cxx__incl.svg b/UDP_8cxx__incl.svg new file mode 100644 index 000000000..6a5d00ae2 --- /dev/null +++ b/UDP_8cxx__incl.svg @@ -0,0 +1,231 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Transports/UDP.cxx + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/UDP.cxx + + +Node2 + + +UDP.h + + + + +Node1->Node2 + + + + +Node4 + +string + + +Node1->Node4 + + + + +Node9 + + +../MonLogger.h + + + + +Node1->Node9 + + + + +Node3 + + +TransportInterface.h + + + + +Node2->Node3 + + + + +Node2->Node4 + + + + +Node5 + +boost/array.hpp + + +Node2->Node5 + + + + +Node6 + +boost/asio.hpp + + +Node2->Node6 + + + + +Node7 + +boost/algorithm/string.hpp + + +Node2->Node7 + + + + +Node8 + +chrono + + +Node2->Node8 + + + + +Node3->Node4 + + + + +Node9->Node8 + + + + +Node10 + +iomanip + + +Node9->Node10 + + + + +Node11 + +iostream + + +Node9->Node11 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/UDP_8cxx__incl_org.svg b/UDP_8cxx__incl_org.svg new file mode 100644 index 000000000..2ff4ae9ff --- /dev/null +++ b/UDP_8cxx__incl_org.svg @@ -0,0 +1,143 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Transports/UDP.cxx + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/UDP.cxx + + +Node2 + + +UDP.h + + + + +Node1->Node2 + + + + +Node4 + +string + + +Node1->Node4 + + + + +Node9 + + +../MonLogger.h + + + + +Node1->Node9 + + + + +Node3 + + +TransportInterface.h + + + + +Node2->Node3 + + + + +Node2->Node4 + + + + +Node5 + +boost/array.hpp + + +Node2->Node5 + + + + +Node6 + +boost/asio.hpp + + +Node2->Node6 + + + + +Node7 + +boost/algorithm/string.hpp + + +Node2->Node7 + + + + +Node8 + +chrono + + +Node2->Node8 + + + + +Node3->Node4 + + + + +Node9->Node8 + + + + +Node10 + +iomanip + + +Node9->Node10 + + + + +Node11 + +iostream + + +Node9->Node11 + + + + + diff --git a/UDP_8h.html b/UDP_8h.html new file mode 100644 index 000000000..e870a3150 --- /dev/null +++ b/UDP_8h.html @@ -0,0 +1,167 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/Transports/UDP.h File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
UDP.h File Reference
+
+
+
#include "TransportInterface.h"
+#include <boost/array.hpp>
+#include <boost/asio.hpp>
+#include <boost/algorithm/string.hpp>
+#include <chrono>
+#include <string>
+
+Include dependency graph for UDP.h:
+
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  o2::monitoring::transports::UDP
 Transport that sends string formatted metrics via UDP. More...
 
+ + + + + + + +

+Namespaces

 o2::monitoring
 ALICE O2 Monitoring system.
 
 o2::monitoring::transports
 Monitoring transports.
 
+

Detailed Description

+
+
+ + + + diff --git a/UDP_8h__dep__incl.dot b/UDP_8h__dep__incl.dot new file mode 100644 index 000000000..53cc713e4 --- /dev/null +++ b/UDP_8h__dep__incl.dot @@ -0,0 +1,12 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/src/Transports/UDP.h" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Transports/UDP.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/MonitoringFactory.cxx",height=0.2,width=0.4,color="black",URL="$MonitoringFactory_8cxx.html"]; + Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Transports/UDP.cxx",height=0.2,width=0.4,color="black",URL="$UDP_8cxx.html"]; +} diff --git a/UDP_8h__dep__incl.map b/UDP_8h__dep__incl.map new file mode 100644 index 000000000..6313855c2 --- /dev/null +++ b/UDP_8h__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/UDP_8h__dep__incl.md5 b/UDP_8h__dep__incl.md5 new file mode 100644 index 000000000..57afdf5c0 --- /dev/null +++ b/UDP_8h__dep__incl.md5 @@ -0,0 +1 @@ +e9a40a59c97ad2d9dc2b3ab753e280eb \ No newline at end of file diff --git a/UDP_8h__dep__incl.svg b/UDP_8h__dep__incl.svg new file mode 100644 index 000000000..125c4656d --- /dev/null +++ b/UDP_8h__dep__incl.svg @@ -0,0 +1,49 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Transports/UDP.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/UDP.h + + +Node2 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/MonitoringFactory.cxx + + + + +Node1->Node2 + + + + +Node3 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/UDP.cxx + + + + +Node1->Node3 + + + + + diff --git a/UDP_8h__incl.dot b/UDP_8h__incl.dot new file mode 100644 index 000000000..75729bc39 --- /dev/null +++ b/UDP_8h__incl.dot @@ -0,0 +1,21 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/src/Transports/UDP.h" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Transports/UDP.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="TransportInterface.h",height=0.2,width=0.4,color="black",URL="$TransportInterface_8h.html"]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="string",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="boost/array.hpp",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="boost/asio.hpp",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="boost/algorithm/string.hpp",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="chrono",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/UDP_8h__incl.map b/UDP_8h__incl.map new file mode 100644 index 000000000..70591a383 --- /dev/null +++ b/UDP_8h__incl.map @@ -0,0 +1,3 @@ + + + diff --git a/UDP_8h__incl.md5 b/UDP_8h__incl.md5 new file mode 100644 index 000000000..e691ffb84 --- /dev/null +++ b/UDP_8h__incl.md5 @@ -0,0 +1 @@ +04ac8654c394a544be6ffc585b4f90f3 \ No newline at end of file diff --git a/UDP_8h__incl.svg b/UDP_8h__incl.svg new file mode 100644 index 000000000..05cc4131c --- /dev/null +++ b/UDP_8h__incl.svg @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Transports/UDP.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/UDP.h + + +Node2 + + +TransportInterface.h + + + + +Node1->Node2 + + + + +Node3 + +string + + +Node1->Node3 + + + + +Node4 + +boost/array.hpp + + +Node1->Node4 + + + + +Node5 + +boost/asio.hpp + + +Node1->Node5 + + + + +Node6 + +boost/algorithm/string.hpp + + +Node1->Node6 + + + + +Node7 + +chrono + + +Node1->Node7 + + + + +Node2->Node3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/UDP_8h__incl_org.svg b/UDP_8h__incl_org.svg new file mode 100644 index 000000000..9b8fed850 --- /dev/null +++ b/UDP_8h__incl_org.svg @@ -0,0 +1,87 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Transports/UDP.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/UDP.h + + +Node2 + + +TransportInterface.h + + + + +Node1->Node2 + + + + +Node3 + +string + + +Node1->Node3 + + + + +Node4 + +boost/array.hpp + + +Node1->Node4 + + + + +Node5 + +boost/asio.hpp + + +Node1->Node5 + + + + +Node6 + +boost/algorithm/string.hpp + + +Node1->Node6 + + + + +Node7 + +chrono + + +Node1->Node7 + + + + +Node2->Node3 + + + + + diff --git a/UDP_8h_source.html b/UDP_8h_source.html new file mode 100644 index 000000000..59cdd4619 --- /dev/null +++ b/UDP_8h_source.html @@ -0,0 +1,133 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/Transports/UDP.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
UDP.h
+
+
+Go to the documentation of this file.
1 // Copyright CERN and copyright holders of ALICE O2. This software is
2 // distributed under the terms of the GNU General Public License v3 (GPL
3 // Version 3), copied verbatim in the file "COPYING".
4 //
5 // See http://alice-o2.web.cern.ch/license for full licensing information.
6 //
7 // In applying this license CERN does not waive the privileges and immunities
8 // granted to it by virtue of its status as an Intergovernmental Organization
9 // or submit itself to any jurisdiction.
10 
15 
16 #ifndef ALICEO2_MONITORING_TRANSPORTS_UDP_H
17 #define ALICEO2_MONITORING_TRANSPORTS_UDP_H
18 
19 #include "TransportInterface.h"
20 
21 #include <boost/array.hpp>
22 #include <boost/asio.hpp>
23 #include <boost/algorithm/string.hpp>
24 #include <chrono>
25 #include <string>
26 
27 namespace o2
28 {
30 namespace monitoring
31 {
33 namespace transports
34 {
35 
37 class UDP : public TransportInterface
38 {
39  public:
43  UDP(const std::string& hostname, int port);
44 
46  ~UDP() = default;
47 
50  void send(std::string&& message) override;
51 
52  private:
54  boost::asio::io_service mIoService;
55 
57  boost::asio::ip::udp::socket mSocket;
58 
60  boost::asio::ip::udp::endpoint mEndpoint;
61 };
62 
63 } // namespace transports
64 } // namespace monitoring
65 } // namespace o2
66 
67 #endif // ALICEO2_MONITORING_TRANSPORTS_UDP_H
Definition: Backend.h:23
+
Transport interface for backends.
Definition: TransportInterface.h:31
+ +
Transport that sends string formatted metrics via UDP.
Definition: UDP.h:37
+
~UDP()=default
Default destructor.
+
UDP(const std::string &hostname, int port)
Definition: UDP.cxx:29
+
void send(std::string &&message) override
Definition: UDP.cxx:38
+
+
+ + + + diff --git a/Unix_8cxx.html b/Unix_8cxx.html new file mode 100644 index 000000000..8406304b3 --- /dev/null +++ b/Unix_8cxx.html @@ -0,0 +1,149 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/Transports/Unix.cxx File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Unix.cxx File Reference
+
+
+
#include "Unix.h"
+#include <string>
+#include "../MonLogger.h"
+
+Include dependency graph for Unix.cxx:
+
+
+
+
+
+ + + + + + + +

+Namespaces

 o2::monitoring
 ALICE O2 Monitoring system.
 
 o2::monitoring::transports
 Monitoring transports.
 
+

Detailed Description

+
+
+ + + + diff --git a/Unix_8cxx__incl.dot b/Unix_8cxx__incl.dot new file mode 100644 index 000000000..6696ab82c --- /dev/null +++ b/Unix_8cxx__incl.dot @@ -0,0 +1,31 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/src/Transports/Unix.cxx" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Transports/Unix.cxx",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="Unix.h",height=0.2,width=0.4,color="black",URL="$Unix_8h.html"]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="TransportInterface.h",height=0.2,width=0.4,color="black",URL="$TransportInterface_8h.html"]; + Node3 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="string",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="boost/array.hpp",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="boost/asio.hpp",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="boost/algorithm/string.hpp",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node8 [label="chrono",height=0.2,width=0.4,color="grey75"]; + Node2 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node1 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 [label="../MonLogger.h",height=0.2,width=0.4,color="black",URL="$MonLogger_8h.html"]; + Node9 -> Node8 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node9 -> Node10 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [label="iomanip",height=0.2,width=0.4,color="grey75"]; + Node9 -> Node11 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [label="iostream",height=0.2,width=0.4,color="grey75"]; +} diff --git a/Unix_8cxx__incl.map b/Unix_8cxx__incl.map new file mode 100644 index 000000000..7b5f19160 --- /dev/null +++ b/Unix_8cxx__incl.map @@ -0,0 +1,5 @@ + + + + + diff --git a/Unix_8cxx__incl.md5 b/Unix_8cxx__incl.md5 new file mode 100644 index 000000000..d3f27a3f7 --- /dev/null +++ b/Unix_8cxx__incl.md5 @@ -0,0 +1 @@ +3e0a8c3bce44c0ae0325d31527179bb4 \ No newline at end of file diff --git a/Unix_8cxx__incl.svg b/Unix_8cxx__incl.svg new file mode 100644 index 000000000..a94b613b2 --- /dev/null +++ b/Unix_8cxx__incl.svg @@ -0,0 +1,231 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Transports/Unix.cxx + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/Unix.cxx + + +Node2 + + +Unix.h + + + + +Node1->Node2 + + + + +Node4 + +string + + +Node1->Node4 + + + + +Node9 + + +../MonLogger.h + + + + +Node1->Node9 + + + + +Node3 + + +TransportInterface.h + + + + +Node2->Node3 + + + + +Node2->Node4 + + + + +Node5 + +boost/array.hpp + + +Node2->Node5 + + + + +Node6 + +boost/asio.hpp + + +Node2->Node6 + + + + +Node7 + +boost/algorithm/string.hpp + + +Node2->Node7 + + + + +Node8 + +chrono + + +Node2->Node8 + + + + +Node3->Node4 + + + + +Node9->Node8 + + + + +Node10 + +iomanip + + +Node9->Node10 + + + + +Node11 + +iostream + + +Node9->Node11 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Unix_8cxx__incl_org.svg b/Unix_8cxx__incl_org.svg new file mode 100644 index 000000000..3b72f776b --- /dev/null +++ b/Unix_8cxx__incl_org.svg @@ -0,0 +1,143 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Transports/Unix.cxx + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/Unix.cxx + + +Node2 + + +Unix.h + + + + +Node1->Node2 + + + + +Node4 + +string + + +Node1->Node4 + + + + +Node9 + + +../MonLogger.h + + + + +Node1->Node9 + + + + +Node3 + + +TransportInterface.h + + + + +Node2->Node3 + + + + +Node2->Node4 + + + + +Node5 + +boost/array.hpp + + +Node2->Node5 + + + + +Node6 + +boost/asio.hpp + + +Node2->Node6 + + + + +Node7 + +boost/algorithm/string.hpp + + +Node2->Node7 + + + + +Node8 + +chrono + + +Node2->Node8 + + + + +Node3->Node4 + + + + +Node9->Node8 + + + + +Node10 + +iomanip + + +Node9->Node10 + + + + +Node11 + +iostream + + +Node9->Node11 + + + + + diff --git a/Unix_8h.html b/Unix_8h.html new file mode 100644 index 000000000..d6d32f1dc --- /dev/null +++ b/Unix_8h.html @@ -0,0 +1,167 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/Transports/Unix.h File Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Unix.h File Reference
+
+
+
#include "TransportInterface.h"
+#include <boost/array.hpp>
+#include <boost/asio.hpp>
+#include <boost/algorithm/string.hpp>
+#include <chrono>
+#include <string>
+
+Include dependency graph for Unix.h:
+
+
+
+
+
+This graph shows which files directly or indirectly include this file:
+
+
+
+
+
+

Go to the source code of this file.

+ + + + + +

+Classes

class  o2::monitoring::transports::Unix
 Transport that sends string formatted metrics via Unix datagram socket. More...
 
+ + + + + + + +

+Namespaces

 o2::monitoring
 ALICE O2 Monitoring system.
 
 o2::monitoring::transports
 Monitoring transports.
 
+

Detailed Description

+
+
+ + + + diff --git a/Unix_8h__dep__incl.dot b/Unix_8h__dep__incl.dot new file mode 100644 index 000000000..720e83b58 --- /dev/null +++ b/Unix_8h__dep__incl.dot @@ -0,0 +1,12 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/src/Transports/Unix.h" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Transports/Unix.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/MonitoringFactory.cxx",height=0.2,width=0.4,color="black",URL="$MonitoringFactory_8cxx.html"]; + Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Transports/Unix.cxx",height=0.2,width=0.4,color="black",URL="$Unix_8cxx.html"]; +} diff --git a/Unix_8h__dep__incl.map b/Unix_8h__dep__incl.map new file mode 100644 index 000000000..7f8f69e2b --- /dev/null +++ b/Unix_8h__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/Unix_8h__dep__incl.md5 b/Unix_8h__dep__incl.md5 new file mode 100644 index 000000000..aa4a68c95 --- /dev/null +++ b/Unix_8h__dep__incl.md5 @@ -0,0 +1 @@ +48750124ab3068594e7635dbcc6789f4 \ No newline at end of file diff --git a/Unix_8h__dep__incl.svg b/Unix_8h__dep__incl.svg new file mode 100644 index 000000000..afe2fde34 --- /dev/null +++ b/Unix_8h__dep__incl.svg @@ -0,0 +1,49 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Transports/Unix.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/Unix.h + + +Node2 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/MonitoringFactory.cxx + + + + +Node1->Node2 + + + + +Node3 + + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/Unix.cxx + + + + +Node1->Node3 + + + + + diff --git a/Unix_8h__incl.dot b/Unix_8h__incl.dot new file mode 100644 index 000000000..d3c77f702 --- /dev/null +++ b/Unix_8h__incl.dot @@ -0,0 +1,21 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/src/Transports/Unix.h" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="/home/travis/build\l/AliceO2Group/Monitoring\l/src/Transports/Unix.h",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="TransportInterface.h",height=0.2,width=0.4,color="black",URL="$TransportInterface_8h.html"]; + Node2 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="string",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node4 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="boost/array.hpp",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node5 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="boost/asio.hpp",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node6 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="boost/algorithm/string.hpp",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node7 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="chrono",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node3 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; +} diff --git a/Unix_8h__incl.map b/Unix_8h__incl.map new file mode 100644 index 000000000..c86e2248d --- /dev/null +++ b/Unix_8h__incl.map @@ -0,0 +1,3 @@ + + + diff --git a/Unix_8h__incl.md5 b/Unix_8h__incl.md5 new file mode 100644 index 000000000..f3b78891e --- /dev/null +++ b/Unix_8h__incl.md5 @@ -0,0 +1 @@ +cfed790f2e1c2734b6e348153bd492f6 \ No newline at end of file diff --git a/Unix_8h__incl.svg b/Unix_8h__incl.svg new file mode 100644 index 000000000..de334acb9 --- /dev/null +++ b/Unix_8h__incl.svg @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Transports/Unix.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/Unix.h + + +Node2 + + +TransportInterface.h + + + + +Node1->Node2 + + + + +Node3 + +string + + +Node1->Node3 + + + + +Node4 + +boost/array.hpp + + +Node1->Node4 + + + + +Node5 + +boost/asio.hpp + + +Node1->Node5 + + + + +Node6 + +boost/algorithm/string.hpp + + +Node1->Node6 + + + + +Node7 + +chrono + + +Node1->Node7 + + + + +Node2->Node3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Unix_8h__incl_org.svg b/Unix_8h__incl_org.svg new file mode 100644 index 000000000..529a8400b --- /dev/null +++ b/Unix_8h__incl_org.svg @@ -0,0 +1,87 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Transports/Unix.h + +Node1 + +/home/travis/build +/AliceO2Group/Monitoring +/src/Transports/Unix.h + + +Node2 + + +TransportInterface.h + + + + +Node1->Node2 + + + + +Node3 + +string + + +Node1->Node3 + + + + +Node4 + +boost/array.hpp + + +Node1->Node4 + + + + +Node5 + +boost/asio.hpp + + +Node1->Node5 + + + + +Node6 + +boost/algorithm/string.hpp + + +Node1->Node6 + + + + +Node7 + +chrono + + +Node1->Node7 + + + + +Node2->Node3 + + + + + diff --git a/Unix_8h_source.html b/Unix_8h_source.html new file mode 100644 index 000000000..703694dee --- /dev/null +++ b/Unix_8h_source.html @@ -0,0 +1,133 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/Transports/Unix.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Unix.h
+
+
+Go to the documentation of this file.
1 // Copyright CERN and copyright holders of ALICE O2. This software is
2 // distributed under the terms of the GNU General Public License v3 (GPL
3 // Version 3), copied verbatim in the file "COPYING".
4 //
5 // See http://alice-o2.web.cern.ch/license for full licensing information.
6 //
7 // In applying this license CERN does not waive the privileges and immunities
8 // granted to it by virtue of its status as an Intergovernmental Organization
9 // or submit itself to any jurisdiction.
10 
15 
16 #ifndef ALICEO2_MONITORING_TRANSPORTS_UNIX_H
17 #define ALICEO2_MONITORING_TRANSPORTS_UNIX_H
18 
19 #include "TransportInterface.h"
20 
21 #include <boost/array.hpp>
22 #include <boost/asio.hpp>
23 #include <boost/algorithm/string.hpp>
24 #include <chrono>
25 #include <string>
26 
27 namespace o2
28 {
30 namespace monitoring
31 {
33 namespace transports
34 {
35 
37 class Unix : public TransportInterface
38 {
39  public:
42  Unix(const std::string& socketPath);
43 
45  ~Unix() = default;
46 
48  void send(std::string&& message) override;
49 
50  private:
52  boost::asio::io_service mIoService;
53 #if defined(BOOST_ASIO_HAS_LOCAL_SOCKETS)
54  boost::asio::local::datagram_protocol::socket mSocket;
56 
58  boost::asio::local::datagram_protocol::endpoint mEndpoint;
59 #endif // defined(BOOST_ASIO_HAS_LOCAL_SOCKETS)
60 };
61 
62 } // namespace transports
63 } // namespace monitoring
64 } // namespace o2
65 
66 #endif // ALICEO2_MONITORING_TRANSPORTS_UNIX_H
Unix(const std::string &socketPath)
+
~Unix()=default
Default destructor.
+
Definition: Backend.h:23
+
Transport interface for backends.
Definition: TransportInterface.h:31
+ +
Transport that sends string formatted metrics via Unix datagram socket.
Definition: Unix.h:37
+
void send(std::string &&message) override
+
+
+ + + + diff --git a/UriParser_8h_source.html b/UriParser_8h_source.html new file mode 100644 index 000000000..e5b7812bb --- /dev/null +++ b/UriParser_8h_source.html @@ -0,0 +1,128 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/UriParser/UriParser.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
UriParser.h
+
+
+
1 /*
2 Copyright (c) 2013 Covenant Eyes
3 
4 Permission is hereby granted, free of charge, to any person obtaining a copy of this
5 software and associated documentation files (the "Software"), to deal in the Software
6 without restriction, including without limitation the rights to use, copy, modify,
7 merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
8 permit persons to whom the Software is furnished to do so, subject to the following
9 conditions:
10 
11 The above copyright notice and this permission notice shall be included in all copies
12 or substantial portions of the Software.
13 
14 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
15 INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
16 PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
17 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
18 OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
19 SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20 */
21 
22 #ifndef ALICEO2_HTTPPARSER_H
23 #define ALICEO2_HTTPPARSER_H
24 
25 #include <iostream>
26 #include <string>
27 #include <stdlib.h>
28 
29 namespace http
30 {
31 struct url {
32  std::string protocol, user, password, host, path, search, url;
33  int port;
34 };
35 
36 //--- Helper Functions -------------------------------------------------------------~
37 static inline std::string TailSlice(std::string& subject, std::string delimiter, bool keep_delim = false)
38 {
39  // Chops off the delimiter and everything that follows (destructively)
40  // returns everything after the delimiter
41  auto delimiter_location = subject.find(delimiter);
42  auto delimiter_length = delimiter.length();
43  std::string output = "";
44 
45  if (delimiter_location < std::string::npos) {
46  auto start = keep_delim ? delimiter_location : delimiter_location + delimiter_length;
47  auto end = subject.length() - start;
48  output = subject.substr(start, end);
49  subject = subject.substr(0, delimiter_location);
50  }
51  return output;
52 }
53 
54 static inline std::string HeadSlice(std::string& subject, std::string delimiter)
55 {
56  // Chops off the delimiter and everything that precedes (destructively)
57  // returns everthing before the delimeter
58  auto delimiter_location = subject.find(delimiter);
59  auto delimiter_length = delimiter.length();
60  std::string output = "";
61  if (delimiter_location < std::string::npos) {
62  output = subject.substr(0, delimiter_location);
63  subject = subject.substr(delimiter_location + delimiter_length, subject.length() - (delimiter_location + delimiter_length));
64  }
65  return output;
66 }
67 
68 //--- Extractors -------------------------------------------------------------------~
69 static inline int ExtractPort(std::string& hostport)
70 {
71  int port;
72  std::string portstring = TailSlice(hostport, ":");
73  try {
74  port = atoi(portstring.c_str());
75  } catch (std::exception& e) {
76  port = -1;
77  }
78  return port;
79 }
80 
81 static inline std::string ExtractPath(std::string& in) { return TailSlice(in, "/", true); }
82 static inline std::string ExtractProtocol(std::string& in) { return HeadSlice(in, "://"); }
83 static inline std::string ExtractSearch(std::string& in) { return TailSlice(in, "?"); }
84 static inline std::string ExtractPassword(std::string& userpass) { return TailSlice(userpass, ":"); }
85 static inline std::string ExtractUserpass(std::string& in) { return HeadSlice(in, "@"); }
86 
87 //--- Public Interface -------------------------------------------------------------~
88 static inline url ParseHttpUrl(std::string& in)
89 {
90  url ret;
91  ret.port = -1;
92  ret.url = in;
93  ret.protocol = ExtractProtocol(in);
94  ret.search = ExtractSearch(in);
95  ret.path = ExtractPath(in);
96  std::string userpass = ExtractUserpass(in);
97  ret.password = ExtractPassword(userpass);
98  ret.user = userpass;
99  ret.port = ExtractPort(in);
100  ret.host = in;
101 
102  return ret;
103 }
104 } // namespace http
105 #endif
Definition: UriParser.h:29
+
Definition: UriParser.h:31
+
+
+ + + + diff --git a/VariantVisitorAdd_8h_source.html b/VariantVisitorAdd_8h_source.html new file mode 100644 index 000000000..a17143fe8 --- /dev/null +++ b/VariantVisitorAdd_8h_source.html @@ -0,0 +1,131 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/VariantVisitorAdd.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
VariantVisitorAdd.h
+
+
+
1 // Copyright CERN and copyright holders of ALICE O2. This software is
2 // distributed under the terms of the GNU General Public License v3 (GPL
3 // Version 3), copied verbatim in the file "COPYING".
4 //
5 // See http://alice-o2.web.cern.ch/license for full licensing information.
6 //
7 // In applying this license CERN does not waive the privileges and immunities
8 // granted to it by virtue of its status as an Intergovernmental Organization
9 // or submit itself to any jurisdiction.
10 
11 #include <variant>
12 
13 namespace o2
14 {
15 // ALICE O2 Monitoring system
16 namespace monitoring
17 {
20 {
21  public:
23  template <
24  typename T,
25  typename = typename std::enable_if<std::is_arithmetic<T>::value, T>::type>
26  std::variant<int, std::string, double, uint64_t> operator()(const T& a, const T& b) const
27  {
28  return a + b;
29  }
30 
33  template <typename T, typename U>
34  std::variant<int, std::string, double, uint64_t> operator()(const T&, const U&) const
35  {
36  throw MonitoringException("DerivedMetrics/Visitor", "Cannot operate on different or non-numeric types");
37  }
38 };
39 
40 } // namespace monitoring
41 } // namespace o2
Definition: Backend.h:23
+
std::variant< int, std::string, double, uint64_t > operator()(const T &a, const T &b) const
Overloads operator() that sums numeric values.
Definition: VariantVisitorAdd.h:26
+
Adds boost variants.
Definition: VariantVisitorAdd.h:19
+
Internal monitoring exception.
Definition: MonitoringException.h:29
+
std::variant< int, std::string, double, uint64_t > operator()(const T &, const U &) const
Definition: VariantVisitorAdd.h:34
+
+
+ + + + diff --git a/VariantVisitorRate_8h_source.html b/VariantVisitorRate_8h_source.html new file mode 100644 index 000000000..c68e83dfc --- /dev/null +++ b/VariantVisitorRate_8h_source.html @@ -0,0 +1,132 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/VariantVisitorRate.h Source File + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
VariantVisitorRate.h
+
+
+
1 // Copyright CERN and copyright holders of ALICE O2. This software is
2 // distributed under the terms of the GNU General Public License v3 (GPL
3 // Version 3), copied verbatim in the file "COPYING".
4 //
5 // See http://alice-o2.web.cern.ch/license for full licensing information.
6 //
7 // In applying this license CERN does not waive the privileges and immunities
8 // granted to it by virtue of its status as an Intergovernmental Organization
9 // or submit itself to any jurisdiction.
10 
11 namespace o2
12 {
13 // ALICE O2 Monitoring system
14 namespace monitoring
15 {
18 {
19  private:
21  int timestampCount;
22 
23  public:
26  VariantVisitorRate(int count) : timestampCount(count)
27  {
28  }
29 
32  template <
33  typename T,
34  typename = typename std::enable_if<std::is_arithmetic<T>::value, T>::type>
35  double operator()(const T& a, const T& b) const
36  {
37  return (1000 * (static_cast<double>(a) - b)) / timestampCount;
38  }
39 
42  template <typename T, typename U>
43  double operator()(const T&, const U&) const
44  {
45  throw MonitoringException("DerivedMetrics/Visitor", "Cannot operate on different or non-numeric types");
46  }
47 };
48 
49 } // namespace monitoring
50 } // namespace o2
Definition: Backend.h:23
+
Subtracts boost variants in order to calculate rate.
Definition: VariantVisitorRate.h:17
+
double operator()(const T &a, const T &b) const
Definition: VariantVisitorRate.h:35
+
VariantVisitorRate(int count)
Definition: VariantVisitorRate.h:26
+
Internal monitoring exception.
Definition: MonitoringException.h:29
+
double operator()(const T &, const U &) const
Definition: VariantVisitorRate.h:43
+
+
+ + + + diff --git a/annotated.html b/annotated.html new file mode 100644 index 000000000..ab1479ea6 --- /dev/null +++ b/annotated.html @@ -0,0 +1,161 @@ + + + + + + +Monitoring: Class List + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Class List
+
+
+
Here are the classes, structs, unions and interfaces with brief descriptions:
+
[detail level 1234]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 Nhttp
 Curl
 No2
 NmonitoringALICE O2 Monitoring system
 NbackendsMonitoring backends
 CApMonBackendBackend that uses AppMon (MonALISA)
 CInfluxDBBackend that sends metrics to InfluxDB time-series databse
 CNoopNo-op backend
 Coverloaded
 CStdOutPrints metrics to standard output via std::cout
 NtransportsMonitoring transports
 CHTTPHTTP POST transport
 CKafkaTransport that sends string formatted metrics via Kafka
 CStdOutTransport that sends string formatted metrics via StdOut
 CTCPTransport that sends string formatted metrics via TCP
 CTransportInterfaceTransport interface for backends
 CUDPTransport that sends string formatted metrics via UDP
 CUnixTransport that sends string formatted metrics via Unix datagram socket
 CBackendBackend pure virtual interface
 CDerivedMetricsEnables Calculation of derived metrics
 CMetricRepresents a metric including value, type of the value, name, timestamp and tags
 CMonitoringMain class that collects metrics from user and dispatches them to selected monitoring backends
 CMonitoringExceptionInternal monitoring exception
 CMonitoringFactoryMonitoring and monitoring backends factory
 CMonLoggerSimple Monitoring logging class
 CProcessDetailsCollects process and machine related details such as PID, process name, hostname
 CProcessMonitorMonitors current process and/or other processes running at the same machien
 CVariantVisitorAddAdds boost variants
 CVariantVisitorRateSubtracts boost variants in order to calculate rate
 Coverloaded
+
+
+
+ + + + diff --git a/annotated_dup.js b/annotated_dup.js new file mode 100644 index 000000000..c0148bcf0 --- /dev/null +++ b/annotated_dup.js @@ -0,0 +1,10 @@ +var annotated_dup = +[ + [ "http", null, [ + [ "url", "structhttp_1_1url.html", "structhttp_1_1url" ] + ] ], + [ "o2", null, [ + [ "monitoring", "namespaceo2_1_1monitoring.html", "namespaceo2_1_1monitoring" ] + ] ], + [ "overloaded", "structoverloaded.html", null ] +]; \ No newline at end of file diff --git a/arrowdown.png b/arrowdown.png new file mode 100644 index 000000000..0b63f6d38 Binary files /dev/null and b/arrowdown.png differ diff --git a/arrowright.png b/arrowright.png new file mode 100644 index 000000000..c6ee22f93 Binary files /dev/null and b/arrowright.png differ diff --git a/bc_s.png b/bc_s.png new file mode 100644 index 000000000..224b29aa9 Binary files /dev/null and b/bc_s.png differ diff --git a/bdwn.png b/bdwn.png new file mode 100644 index 000000000..940a0b950 Binary files /dev/null and b/bdwn.png differ diff --git a/classes.html b/classes.html new file mode 100644 index 000000000..feb415b06 --- /dev/null +++ b/classes.html @@ -0,0 +1,159 @@ + + + + + + +Monitoring: Class Index + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Class Index
+
+
+
A | B | D | H | I | K | M | N | O | P | S | T | U | V
+ + + + + + + + + + + + + + +
  A  
+
  I  
+
MonitoringFactory (o2::monitoring)   StdOut (o2::monitoring::backends)   VariantVisitorRate (o2::monitoring)   
MonLogger (o2::monitoring)   
  T  
+
  o  
+
ApMonBackend (o2::monitoring::backends)   InfluxDB (o2::monitoring::backends)   
  N  
+
  B  
+
  K  
+
TCP (o2::monitoring::transports)   overloaded   
Noop (o2::monitoring::backends)   TransportInterface (o2::monitoring::transports)   overloaded (o2::monitoring::backends)   
Backend (o2::monitoring)   Kafka (o2::monitoring::transports)   
  P  
+
  U  
+
  u  
+
  D  
+
  M  
+
ProcessDetails (o2::monitoring)   UDP (o2::monitoring::transports)   url (http)   
DerivedMetrics (o2::monitoring)   Metric (o2::monitoring)   ProcessMonitor (o2::monitoring)   Unix (o2::monitoring::transports)   
  H  
+
Monitoring (o2::monitoring)   
  S  
+
  V  
+
MonitoringException (o2::monitoring)   
HTTP (o2::monitoring::transports)   StdOut (o2::monitoring::transports)   VariantVisitorAdd (o2::monitoring)   
+
A | B | D | H | I | K | M | N | O | P | S | T | U | V
+
+
+ + + + diff --git a/classo2_1_1monitoring_1_1Backend-members.html b/classo2_1_1monitoring_1_1Backend-members.html new file mode 100644 index 000000000..a76438451 --- /dev/null +++ b/classo2_1_1monitoring_1_1Backend-members.html @@ -0,0 +1,137 @@ + + + + + + +Monitoring: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
o2::monitoring::Backend Member List
+
+
+ +

This is the complete list of members for o2::monitoring::Backend, including all inherited members.

+ + + + + + + + +
addGlobalTag(std::string_view name, std::string_view value)=0o2::monitoring::Backendpure virtual
Backend()o2::monitoring::Backendinline
getVerbosity()o2::monitoring::Backendinline
send(const Metric &metric)=0o2::monitoring::Backendpure virtual
send(std::vector< Metric > &&metrics)=0o2::monitoring::Backendpure virtual
setVerbosisty(Verbosity level)o2::monitoring::Backendinline
~Backend()=defaulto2::monitoring::Backendvirtual
+
+ + + + diff --git a/classo2_1_1monitoring_1_1Backend.html b/classo2_1_1monitoring_1_1Backend.html new file mode 100644 index 000000000..0722e23a5 --- /dev/null +++ b/classo2_1_1monitoring_1_1Backend.html @@ -0,0 +1,186 @@ + + + + + + +Monitoring: o2::monitoring::Backend Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
o2::monitoring::Backend Class Referenceabstract
+
+
+ +

Backend pure virtual interface. + More...

+ +

#include <Backend.h>

+
+Inheritance diagram for o2::monitoring::Backend:
+
+
+
+
+
+Collaboration diagram for o2::monitoring::Backend:
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Backend ()
 Default constructor.
 
+virtual ~Backend ()=default
 Default destructor.
 
+void setVerbosisty (Verbosity level)
 Set verbosity level.
 
+Verbosity getVerbosity ()
 Get verbosity level.
 
+virtual void send (const Metric &metric)=0
 Sends metric via backend.
 
+virtual void send (std::vector< Metric > &&metrics)=0
 Sends multiple metrics not related to each other.
 
+virtual void addGlobalTag (std::string_view name, std::string_view value)=0
 Sets a tag.
 
+

Detailed Description

+

Backend pure virtual interface.

+

Interface that allows to send a metric to remote backend. In addition, default tagset (for all handled metrics) can be created.

+

The documentation for this class was generated from the following file:
    +
  • /home/travis/build/AliceO2Group/Monitoring/include/Monitoring/Backend.h
  • +
+
+
+ + + + diff --git a/classo2_1_1monitoring_1_1Backend.js b/classo2_1_1monitoring_1_1Backend.js new file mode 100644 index 000000000..07b577534 --- /dev/null +++ b/classo2_1_1monitoring_1_1Backend.js @@ -0,0 +1,10 @@ +var classo2_1_1monitoring_1_1Backend = +[ + [ "Backend", "classo2_1_1monitoring_1_1Backend.html#a8b0fa3aea0ef4a3e2425abe321c1aab0", null ], + [ "~Backend", "classo2_1_1monitoring_1_1Backend.html#a3f48dbee9ed23635e05ca6912db289df", null ], + [ "addGlobalTag", "classo2_1_1monitoring_1_1Backend.html#a67e55a8d7acb63268d1bfa576ddfebe9", null ], + [ "getVerbosity", "classo2_1_1monitoring_1_1Backend.html#ae34b9d32981f24f869b4944046789c0e", null ], + [ "send", "classo2_1_1monitoring_1_1Backend.html#ad84d28199d142ff3030f6b2c7e785485", null ], + [ "send", "classo2_1_1monitoring_1_1Backend.html#adfbe8f3a11dcdc9feabb03ad95f26c57", null ], + [ "setVerbosisty", "classo2_1_1monitoring_1_1Backend.html#ae6c6dd18c638c10a608c572c37f44140", null ] +]; \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1Backend__coll__graph.dot b/classo2_1_1monitoring_1_1Backend__coll__graph.dot new file mode 100644 index 000000000..8f932730c --- /dev/null +++ b/classo2_1_1monitoring_1_1Backend__coll__graph.dot @@ -0,0 +1,8 @@ +digraph "o2::monitoring::Backend" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="{o2::monitoring::Backend\n||+ Backend()\l+ ~Backend()\l+ setVerbosisty()\l+ getVerbosity()\l+ send()\l+ send()\l+ addGlobalTag()\l}",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; +} diff --git a/classo2_1_1monitoring_1_1Backend__coll__graph.map b/classo2_1_1monitoring_1_1Backend__coll__graph.map new file mode 100644 index 000000000..d5ac47bde --- /dev/null +++ b/classo2_1_1monitoring_1_1Backend__coll__graph.map @@ -0,0 +1,2 @@ + + diff --git a/classo2_1_1monitoring_1_1Backend__coll__graph.md5 b/classo2_1_1monitoring_1_1Backend__coll__graph.md5 new file mode 100644 index 000000000..78abb6dcf --- /dev/null +++ b/classo2_1_1monitoring_1_1Backend__coll__graph.md5 @@ -0,0 +1 @@ +2fa1b1a316155b69b8815591302db7af \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1Backend__coll__graph.svg b/classo2_1_1monitoring_1_1Backend__coll__graph.svg new file mode 100644 index 000000000..ddeb13088 --- /dev/null +++ b/classo2_1_1monitoring_1_1Backend__coll__graph.svg @@ -0,0 +1,27 @@ + + + + + + +o2::monitoring::Backend + +Node1 + +o2::monitoring::Backend + + + ++ Backend() ++ ~Backend() ++ setVerbosisty() ++ getVerbosity() ++ send() ++ send() ++ addGlobalTag() + + + diff --git a/classo2_1_1monitoring_1_1Backend__inherit__graph.dot b/classo2_1_1monitoring_1_1Backend__inherit__graph.dot new file mode 100644 index 000000000..7facca28e --- /dev/null +++ b/classo2_1_1monitoring_1_1Backend__inherit__graph.dot @@ -0,0 +1,16 @@ +digraph "o2::monitoring::Backend" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="{o2::monitoring::Backend\n||+ Backend()\l+ ~Backend()\l+ setVerbosisty()\l+ getVerbosity()\l+ send()\l+ send()\l+ addGlobalTag()\l}",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; + Node2 [label="{o2::monitoring::backends\l::ApMonBackend\n||+ ApMonBackend()\l+ ~ApMonBackend()\l+ send()\l+ send()\l+ addGlobalTag()\l}",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1backends_1_1ApMonBackend.html",tooltip="Backend that uses AppMon (MonALISA) "]; + Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; + Node3 [label="{o2::monitoring::backends\l::InfluxDB\n||+ InfluxDB()\l+ ~InfluxDB()\l+ convertTimestamp()\l+ send()\l+ send()\l+ addGlobalTag()\l+ toInfluxLineProtocol()\l}",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1backends_1_1InfluxDB.html",tooltip="Backend that sends metrics to InfluxDB time-series databse. "]; + Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; + Node4 [label="{o2::monitoring::backends\l::Noop\n||+ Noop()\l+ ~Noop()\l+ send()\l+ send()\l+ addGlobalTag()\l}",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1backends_1_1Noop.html",tooltip="No-op backend. "]; + Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; + Node5 [label="{o2::monitoring::backends\l::StdOut\n||+ StdOut()\l+ ~StdOut()\l+ send()\l+ send()\l+ addGlobalTag()\l}",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1backends_1_1StdOut.html",tooltip="Prints metrics to standard output via std::cout. "]; +} diff --git a/classo2_1_1monitoring_1_1Backend__inherit__graph.map b/classo2_1_1monitoring_1_1Backend__inherit__graph.map new file mode 100644 index 000000000..957caf01e --- /dev/null +++ b/classo2_1_1monitoring_1_1Backend__inherit__graph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/classo2_1_1monitoring_1_1Backend__inherit__graph.md5 b/classo2_1_1monitoring_1_1Backend__inherit__graph.md5 new file mode 100644 index 000000000..aae962365 --- /dev/null +++ b/classo2_1_1monitoring_1_1Backend__inherit__graph.md5 @@ -0,0 +1 @@ +385dba7fa9131cab6019ee028c368af4 \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1Backend__inherit__graph.svg b/classo2_1_1monitoring_1_1Backend__inherit__graph.svg new file mode 100644 index 000000000..533070196 --- /dev/null +++ b/classo2_1_1monitoring_1_1Backend__inherit__graph.svg @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +o2::monitoring::Backend + +Node1 + +o2::monitoring::Backend + + + ++ Backend() ++ ~Backend() ++ setVerbosisty() ++ getVerbosity() ++ send() ++ send() ++ addGlobalTag() + + +Node2 + + +o2::monitoring::backends +::ApMonBackend + + + ++ ApMonBackend() ++ ~ApMonBackend() ++ send() ++ send() ++ addGlobalTag() + + + + +Node1->Node2 + + + + +Node3 + + +o2::monitoring::backends +::InfluxDB + + + ++ InfluxDB() ++ ~InfluxDB() ++ convertTimestamp() ++ send() ++ send() ++ addGlobalTag() ++ toInfluxLineProtocol() + + + + +Node1->Node3 + + + + +Node4 + + +o2::monitoring::backends +::Noop + + + ++ Noop() ++ ~Noop() ++ send() ++ send() ++ addGlobalTag() + + + + +Node1->Node4 + + + + +Node5 + + +o2::monitoring::backends +::StdOut + + + ++ StdOut() ++ ~StdOut() ++ send() ++ send() ++ addGlobalTag() + + + + +Node1->Node5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/classo2_1_1monitoring_1_1Backend__inherit__graph_org.svg b/classo2_1_1monitoring_1_1Backend__inherit__graph_org.svg new file mode 100644 index 000000000..b153b0846 --- /dev/null +++ b/classo2_1_1monitoring_1_1Backend__inherit__graph_org.svg @@ -0,0 +1,117 @@ + + + + + + +o2::monitoring::Backend + +Node1 + +o2::monitoring::Backend + + + ++ Backend() ++ ~Backend() ++ setVerbosisty() ++ getVerbosity() ++ send() ++ send() ++ addGlobalTag() + + +Node2 + + +o2::monitoring::backends +::ApMonBackend + + + ++ ApMonBackend() ++ ~ApMonBackend() ++ send() ++ send() ++ addGlobalTag() + + + + +Node1->Node2 + + + + +Node3 + + +o2::monitoring::backends +::InfluxDB + + + ++ InfluxDB() ++ ~InfluxDB() ++ convertTimestamp() ++ send() ++ send() ++ addGlobalTag() ++ toInfluxLineProtocol() + + + + +Node1->Node3 + + + + +Node4 + + +o2::monitoring::backends +::Noop + + + ++ Noop() ++ ~Noop() ++ send() ++ send() ++ addGlobalTag() + + + + +Node1->Node4 + + + + +Node5 + + +o2::monitoring::backends +::StdOut + + + ++ StdOut() ++ ~StdOut() ++ send() ++ send() ++ addGlobalTag() + + + + +Node1->Node5 + + + + + diff --git a/classo2_1_1monitoring_1_1DerivedMetrics-members.html b/classo2_1_1monitoring_1_1DerivedMetrics-members.html new file mode 100644 index 000000000..0b9daa234 --- /dev/null +++ b/classo2_1_1monitoring_1_1DerivedMetrics-members.html @@ -0,0 +1,134 @@ + + + + + + +Monitoring: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
o2::monitoring::DerivedMetrics Member List
+
+
+ +

This is the complete list of members for o2::monitoring::DerivedMetrics, including all inherited members.

+ + + + + +
DerivedMetrics()=defaulto2::monitoring::DerivedMetrics
mStorageo2::monitoring::DerivedMetrics
process(Metric &metric, DerivedMetricMode mode)o2::monitoring::DerivedMetrics
~DerivedMetrics()=defaulto2::monitoring::DerivedMetrics
+
+ + + + diff --git a/classo2_1_1monitoring_1_1DerivedMetrics.html b/classo2_1_1monitoring_1_1DerivedMetrics.html new file mode 100644 index 000000000..8540bf83c --- /dev/null +++ b/classo2_1_1monitoring_1_1DerivedMetrics.html @@ -0,0 +1,200 @@ + + + + + + +Monitoring: o2::monitoring::DerivedMetrics Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
o2::monitoring::DerivedMetrics Class Reference
+
+
+ +

Enables Calculation of derived metrics. + More...

+ +

#include <DerivedMetrics.h>

+
+Collaboration diagram for o2::monitoring::DerivedMetrics:
+
+
+
+
+ + + + + + + + + + +

+Public Member Functions

DerivedMetrics ()=default
 Default constructor.
 
~DerivedMetrics ()=default
 Default destructor.
 
void process (Metric &metric, DerivedMetricMode mode)
 
+ + + + +

+Public Attributes

+std::unordered_map< std::string, MetricmStorage
 Metrics store necessary for derived metrics.
 
+

Detailed Description

+

Enables Calculation of derived metrics.

+

Calculates derived metrics such as rate or increment values... (available modes are enumerated in DerivedMetricMode class) For this purpose metrics are stored in a container.

+

Member Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
void o2::monitoring::DerivedMetrics::process (Metricmetric,
DerivedMetricMode mode 
)
+
+

Entry method to DerivedMetrics Switches over processing modes: rate and increment

+

create pseudo unique key

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/classo2_1_1monitoring_1_1DerivedMetrics.js b/classo2_1_1monitoring_1_1DerivedMetrics.js new file mode 100644 index 000000000..cb4c7fc0f --- /dev/null +++ b/classo2_1_1monitoring_1_1DerivedMetrics.js @@ -0,0 +1,7 @@ +var classo2_1_1monitoring_1_1DerivedMetrics = +[ + [ "DerivedMetrics", "classo2_1_1monitoring_1_1DerivedMetrics.html#a01e94a78a60246b8dad7628155bbdb83", null ], + [ "~DerivedMetrics", "classo2_1_1monitoring_1_1DerivedMetrics.html#acb0059d3cc0c570fc042663596b0f6ae", null ], + [ "process", "classo2_1_1monitoring_1_1DerivedMetrics.html#aa3133c5f7c3855a98d1c4e78a0b763f5", null ], + [ "mStorage", "classo2_1_1monitoring_1_1DerivedMetrics.html#ab45ed6358a28e8455824704e1919ef48", null ] +]; \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1DerivedMetrics__coll__graph.dot b/classo2_1_1monitoring_1_1DerivedMetrics__coll__graph.dot new file mode 100644 index 000000000..f656b3b26 --- /dev/null +++ b/classo2_1_1monitoring_1_1DerivedMetrics__coll__graph.dot @@ -0,0 +1,10 @@ +digraph "o2::monitoring::DerivedMetrics" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="{o2::monitoring::DerivedMetrics\n||+ DerivedMetrics()\l+ ~DerivedMetrics()\l+ process()\l}",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node2 -> Node1 [color="grey25",fontsize="10",style="solid",label=" +mStorage" ,arrowhead="odiamond",fontname="Helvetica"]; + Node2 [label="{unordered_map\< std\l::string, o2::monitoring\l::Metric \>\n||}",height=0.2,width=0.4,color="grey75"]; +} diff --git a/classo2_1_1monitoring_1_1DerivedMetrics__coll__graph.map b/classo2_1_1monitoring_1_1DerivedMetrics__coll__graph.map new file mode 100644 index 000000000..a517ac04c --- /dev/null +++ b/classo2_1_1monitoring_1_1DerivedMetrics__coll__graph.map @@ -0,0 +1,2 @@ + + diff --git a/classo2_1_1monitoring_1_1DerivedMetrics__coll__graph.md5 b/classo2_1_1monitoring_1_1DerivedMetrics__coll__graph.md5 new file mode 100644 index 000000000..6831c374a --- /dev/null +++ b/classo2_1_1monitoring_1_1DerivedMetrics__coll__graph.md5 @@ -0,0 +1 @@ +cf7bdce616aad283382653588f160268 \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1DerivedMetrics__coll__graph.svg b/classo2_1_1monitoring_1_1DerivedMetrics__coll__graph.svg new file mode 100644 index 000000000..3092d879c --- /dev/null +++ b/classo2_1_1monitoring_1_1DerivedMetrics__coll__graph.svg @@ -0,0 +1,40 @@ + + + + + + +o2::monitoring::DerivedMetrics + +Node1 + +o2::monitoring::DerivedMetrics + + + ++ DerivedMetrics() ++ ~DerivedMetrics() ++ process() + + +Node2 + +unordered_map< std +::string, o2::monitoring +::Metric > + + + + + + +Node2->Node1 + + + +mStorage + + + diff --git a/classo2_1_1monitoring_1_1Metric-members.html b/classo2_1_1monitoring_1_1Metric-members.html new file mode 100644 index 000000000..2f8c9c747 --- /dev/null +++ b/classo2_1_1monitoring_1_1Metric-members.html @@ -0,0 +1,166 @@ + + + + + + +Monitoring: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
o2::monitoring::Metric Member List
+
+
+ +

This is the complete list of members for o2::monitoring::Metric, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
addTag(tags::Key key, tags::Value value)o2::monitoring::Metric
addTag(tags::Key key, unsigned short int number)o2::monitoring::Metric
addValue(int value, const std::string &name)o2::monitoring::Metric
addValue(double value, const std::string &name)o2::monitoring::Metric
addValue(uint64_t value, const std::string &name)o2::monitoring::Metric
addValue(std::string value, const std::string &name)o2::monitoring::Metric
addValue(const std::variant< int, std::string, double, uint64_t > &value, const std::string &name)o2::monitoring::Metric
DefaultVerbosityo2::monitoring::Metricstatic
getCurrentTimestamp() -> decltype(std::chrono::system_clock::now())o2::monitoring::Metricstatic
getFirstValue() const o2::monitoring::Metric
getFirstValueType() const o2::monitoring::Metric
getName() const o2::monitoring::Metric
getTags() const o2::monitoring::Metric
getTimestamp() const o2::monitoring::Metric
getValues() const o2::monitoring::Metric
getValuesSize() const noexcepto2::monitoring::Metric
getVerbosity()o2::monitoring::Metric
includeTimestampo2::monitoring::Metricstatic
mDefaultValueNameo2::monitoring::Metricprotectedstatic
Metric(int value, const std::string &name, Verbosity verbosity=Metric::DefaultVerbosity)o2::monitoring::Metric
Metric(std::string value, const std::string &name, Verbosity verbosity=Metric::DefaultVerbosity)o2::monitoring::Metric
Metric(double value, const std::string &name, Verbosity verbosity=Metric::DefaultVerbosity)o2::monitoring::Metric
Metric(uint64_t value, const std::string &name, Verbosity verbosity=Metric::DefaultVerbosity)o2::monitoring::Metric
Metric(const std::string &name, Verbosity verbosity=Metric::DefaultVerbosity, const std::chrono::time_point< std::chrono::system_clock > &timestamp=Metric::getCurrentTimestamp())o2::monitoring::Metric
mNameo2::monitoring::Metricprotected
mRegexPolicyo2::monitoring::Metricprotectedstatic
mTagso2::monitoring::Metricprotected
mTimestampo2::monitoring::Metricprotected
mValueso2::monitoring::Metricprotected
mVerbosityo2::monitoring::Metricprotected
o2::monitoring::DerivedMetrics classo2::monitoring::Metricfriend
overwriteVerbosity()o2::monitoring::Metricprotected
setDefaultVerbosity(Verbosity verbosity)o2::monitoring::Metricstatic
setTags(std::vector< std::pair< int, int >> &&tags)o2::monitoring::Metricprotected
setVerbosityPolicy(Verbosity verbosity, const std::regex &regex)o2::monitoring::Metricstatic
~Metric()=defaulto2::monitoring::Metric
+
+ + + + diff --git a/classo2_1_1monitoring_1_1Metric.html b/classo2_1_1monitoring_1_1Metric.html new file mode 100644 index 000000000..8d24809b7 --- /dev/null +++ b/classo2_1_1monitoring_1_1Metric.html @@ -0,0 +1,817 @@ + + + + + + +Monitoring: o2::monitoring::Metric Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ + +
+ +

Represents a metric including value, type of the value, name, timestamp and tags. + More...

+ +

#include <Metric.h>

+
+Collaboration diagram for o2::monitoring::Metric:
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Metric (int value, const std::string &name, Verbosity verbosity=Metric::DefaultVerbosity)
 
 Metric (std::string value, const std::string &name, Verbosity verbosity=Metric::DefaultVerbosity)
 
 Metric (double value, const std::string &name, Verbosity verbosity=Metric::DefaultVerbosity)
 
 Metric (uint64_t value, const std::string &name, Verbosity verbosity=Metric::DefaultVerbosity)
 
 Metric (const std::string &name, Verbosity verbosity=Metric::DefaultVerbosity, const std::chrono::time_point< std::chrono::system_clock > &timestamp=Metric::getCurrentTimestamp())
 
Metric && addValue (int value, const std::string &name)
 
Metric && addValue (double value, const std::string &name)
 
Metric && addValue (uint64_t value, const std::string &name)
 
Metric && addValue (std::string value, const std::string &name)
 
Metric && addValue (const std::variant< int, std::string, double, uint64_t > &value, const std::string &name)
 
~Metric ()=default
 Default destructor.
 
const std::string & getName () const
 
std::chrono::time_point< std::chrono::system_clock > getTimestamp () const
 
const std::vector< std::pair< std::string, std::variant< int, std::string, double, uint64_t > > > & getValues () const
 
const std::pair< std::string, std::variant< int, std::string, double, uint64_t > > & getFirstValue () const
 
+std::size_t getValuesSize () const noexcept
 Values vector size getter.
 
const std::vector< std::pair< int, int > > & getTags () const
 
Metric && addTag (tags::Key key, tags::Value value)
 
Metric && addTag (tags::Key key, unsigned short int number)
 
+Verbosity getVerbosity ()
 Verbosity getter.
 
+int getFirstValueType () const
 This is required for backward compability with boost::variant and old StdOut format.
 
+ + + + + + + + + +

+Static Public Member Functions

static auto getCurrentTimestamp () -> decltype(std::chrono::system_clock::now())
 
+static void setDefaultVerbosity (Verbosity verbosity)
 Sets default verbosity of metrics.
 
+static void setVerbosityPolicy (Verbosity verbosity, const std::regex &regex)
 Regex policy setter.
 
+ + + + + + + +

+Static Public Attributes

+static Verbosity DefaultVerbosity = Verbosity::Info
 Default metric verbosity.
 
+static bool includeTimestamp = true
 Whether timestamp should be included or not.
 
+ + + + + + + +

+Protected Member Functions

+Metric && setTags (std::vector< std::pair< int, int >> &&tags)
 Set full vector of tags.
 
+void overwriteVerbosity ()
 Overwirte verbosity using regex policy.
 
+ + + + + + + + + + + + + + + + +

+Protected Attributes

+std::vector< std::pair< std::string, std::variant< int, std::string, double, uint64_t > > > mValues
 Metric values.
 
+std::string mName
 Metric name.
 
+std::chrono::time_point< std::chrono::system_clock > mTimestamp
 Metric timestamp.
 
+std::vector< std::pair< int, int > > mTags
 Metric tags.
 
+Verbosity mVerbosity
 Metric verbosity.
 
+ + + + + + + +

+Static Protected Attributes

+static std::map< std::underlying_type< Verbosity >::type, std::regex > mRegexPolicy
 Regex policy map.
 
+static constexpr char mDefaultValueName [] = "value"
 Default value name.
 
+ + + + +

+Friends

+class o2::monitoring::DerivedMetrics
 Allow DerivedMetrics access to setTags.
 
+

Detailed Description

+

Represents a metric including value, type of the value, name, timestamp and tags.

+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
o2::monitoring::Metric::Metric (int value,
const std::string & name,
Verbosity verbosity = Metric::DefaultVerbosity 
)
+
+

Integer metric construtor

Parameters
+ + + +
valuemetric value (int)
namemetric name
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
o2::monitoring::Metric::Metric (std::string value,
const std::string & name,
Verbosity verbosity = Metric::DefaultVerbosity 
)
+
+

String metric construtor

Parameters
+ + + +
valuemetric value (string)
namethe metric name
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
o2::monitoring::Metric::Metric (double value,
const std::string & name,
Verbosity verbosity = Metric::DefaultVerbosity 
)
+
+

Double metric constructor

Parameters
+ + + +
valuemetric value (double)
namemetric name
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
o2::monitoring::Metric::Metric (uint64_t value,
const std::string & name,
Verbosity verbosity = Metric::DefaultVerbosity 
)
+
+

uint64_t metric constructor

Parameters
+ + + +
valuemetric value (uint64_t)
namemetric name
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
o2::monitoring::Metric::Metric (const std::string & name,
Verbosity verbosity = Metric::DefaultVerbosity,
const std::chrono::time_point< std::chrono::system_clock > & timestamp = Metric::getCurrentTimestamp() 
)
+
+

Constructor that does not require any value to be specified, .addValue needs to be used

Parameters
+ + +
namemetric name
+
+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
Metric && o2::monitoring::Metric::addTag (tags::Key key,
tags::Value value 
)
+
+

Add user defined tags

Parameters
+ + + +
keyenum tag key
valueemum tag value
+
+
+
Returns
r-value to "this" - to be able to chain methods
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
Metric&& o2::monitoring::Metric::addTag (tags::Key key,
unsigned short int number 
)
+
+

Add user defined tags

Parameters
+ + + +
keyenum tag key
valuenumeric value
+
+
+
Returns
r-value to "this" - to be able to chain methods
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
Metric && o2::monitoring::Metric::addValue (int value,
const std::string & name 
)
+
+

Adds additional int value to metric

Parameters
+ + + +
value
name
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
Metric && o2::monitoring::Metric::addValue (double value,
const std::string & name 
)
+
+

Adds additional double value to metric

Parameters
+ + + +
value
name
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
Metric && o2::monitoring::Metric::addValue (uint64_t value,
const std::string & name 
)
+
+

Adds additional uint64_t value to metric

Parameters
+ + + +
value
name
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
Metric && o2::monitoring::Metric::addValue (std::string value,
const std::string & name 
)
+
+

Adds additional string value to metric

Parameters
+ + + +
value
name
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
Metric && o2::monitoring::Metric::addValue (const std::variant< int, std::string, double, uint64_t > & value,
const std::string & name 
)
+
+

Adds additional variant value to metric

Parameters
+ + + +
value
name
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + +
auto o2::monitoring::Metric::getCurrentTimestamp () -> decltype(std::chrono::system_clock::now())
+
+static
+
+

Generetes current timestamp return timestamp as std::chrono::system_clock

+ +
+
+ +
+
+ + + + + + + +
const std::pair< std::string, std::variant< int, std::string, double, uint64_t > > & o2::monitoring::Metric::getFirstValue () const
+
+

First value getter

Returns
first value as pair
+ +
+
+ +
+
+ + + + + + + +
const std::string & o2::monitoring::Metric::getName () const
+
+

Name getter

Returns
metric name
+ +
+
+ +
+
+ + + + + + + +
const std::vector< std::pair< int, int > > & o2::monitoring::Metric::getTags () const
+
+

Tag list getter

Returns
tags
+ +
+
+ +
+
+ + + + + + + +
std::chrono::time_point< std::chrono::system_clock > o2::monitoring::Metric::getTimestamp () const
+
+

Timestamp getter

Returns
metric timestamp
+ +
+
+ +
+
+ + + + + + + +
const std::vector< std::pair< std::string, std::variant< int, std::string, double, uint64_t > > > & o2::monitoring::Metric::getValues () const
+
+

Values getter

Returns
vector of values
+ +
+
+
The documentation for this class was generated from the following files:
    +
  • /home/travis/build/AliceO2Group/Monitoring/include/Monitoring/Metric.h
  • +
  • /home/travis/build/AliceO2Group/Monitoring/src/Metric.cxx
  • +
+
+
+ + + + diff --git a/classo2_1_1monitoring_1_1Metric.js b/classo2_1_1monitoring_1_1Metric.js new file mode 100644 index 000000000..246c393b4 --- /dev/null +++ b/classo2_1_1monitoring_1_1Metric.js @@ -0,0 +1,32 @@ +var classo2_1_1monitoring_1_1Metric = +[ + [ "Metric", "classo2_1_1monitoring_1_1Metric.html#a870254fea4ff3bfcaef4fbb7c186f782", null ], + [ "Metric", "classo2_1_1monitoring_1_1Metric.html#aabd1bc0072d5ae13e14715e2608c376e", null ], + [ "Metric", "classo2_1_1monitoring_1_1Metric.html#a51519c6056128605714b40dc9bf351d0", null ], + [ "Metric", "classo2_1_1monitoring_1_1Metric.html#ac8fedad90cd7254b562b7a34bc9ebb00", null ], + [ "Metric", "classo2_1_1monitoring_1_1Metric.html#ae069928c65057166a361b7c3dcd175d3", null ], + [ "~Metric", "classo2_1_1monitoring_1_1Metric.html#afc9ab7a124026bad375783c53dc87f4c", null ], + [ "addTag", "classo2_1_1monitoring_1_1Metric.html#a739840029233ff1b30e8596c6cb3337d", null ], + [ "addTag", "classo2_1_1monitoring_1_1Metric.html#a4ae8e0b1e1cdf74679518f5704220abc", null ], + [ "addValue", "classo2_1_1monitoring_1_1Metric.html#a70fa1e29fb69c001c3b474844adb08cf", null ], + [ "addValue", "classo2_1_1monitoring_1_1Metric.html#a12e4af5f633f8d3d0cec507c54899991", null ], + [ "addValue", "classo2_1_1monitoring_1_1Metric.html#ae3ac9ba3267a3c45f327448db8aa6a34", null ], + [ "addValue", "classo2_1_1monitoring_1_1Metric.html#ab73ee51e1ef888f8918bccfd1a89b57d", null ], + [ "addValue", "classo2_1_1monitoring_1_1Metric.html#a0aafc233e42eda4e04c8dc2bda75d402", null ], + [ "getFirstValue", "classo2_1_1monitoring_1_1Metric.html#a85e9c5ee11c64c4123eae91b4ca55a39", null ], + [ "getFirstValueType", "classo2_1_1monitoring_1_1Metric.html#adf54092f4e8722615b165867f8afddde", null ], + [ "getName", "classo2_1_1monitoring_1_1Metric.html#a6975c4d70004b881258ef17c116c874f", null ], + [ "getTags", "classo2_1_1monitoring_1_1Metric.html#a148981e1c1dd787f1f8b4cbba9c19558", null ], + [ "getTimestamp", "classo2_1_1monitoring_1_1Metric.html#a7ac79817604203da55c2727f458392c7", null ], + [ "getValues", "classo2_1_1monitoring_1_1Metric.html#a6263c5769df042005548b449e65c8634", null ], + [ "getValuesSize", "classo2_1_1monitoring_1_1Metric.html#afcffda51253bf3586154c337d360c156", null ], + [ "getVerbosity", "classo2_1_1monitoring_1_1Metric.html#ac5d1257c85b09e1f1dc60ab533da3d9e", null ], + [ "overwriteVerbosity", "classo2_1_1monitoring_1_1Metric.html#a0535e5ab38995e7f2433f3a08ff45e9c", null ], + [ "setTags", "classo2_1_1monitoring_1_1Metric.html#aa0f834f2aaa1966cc1c03d0f0ffcdc58", null ], + [ "o2::monitoring::DerivedMetrics", "classo2_1_1monitoring_1_1Metric.html#a69478638779e98ab46e31ae42219c0cc", null ], + [ "mName", "classo2_1_1monitoring_1_1Metric.html#a2f7c68b3bc3fae9639a7617d2b4217c9", null ], + [ "mTags", "classo2_1_1monitoring_1_1Metric.html#ad0b2da7138e43df7e8a1abf3fc94e4aa", null ], + [ "mTimestamp", "classo2_1_1monitoring_1_1Metric.html#a9cca99dc167febd6977c8eb2600913cc", null ], + [ "mValues", "classo2_1_1monitoring_1_1Metric.html#a22a0420126bab818dc7951c5e1c47c65", null ], + [ "mVerbosity", "classo2_1_1monitoring_1_1Metric.html#a33a7d10de02570105a0a9976a7886744", null ] +]; \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1Metric__coll__graph.dot b/classo2_1_1monitoring_1_1Metric__coll__graph.dot new file mode 100644 index 000000000..2b7d6ab75 --- /dev/null +++ b/classo2_1_1monitoring_1_1Metric__coll__graph.dot @@ -0,0 +1,26 @@ +digraph "o2::monitoring::Metric" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="{o2::monitoring::Metric\n||+ Metric()\l+ Metric()\l+ Metric()\l+ Metric()\l+ Metric()\l+ addValue()\l+ addValue()\l+ addValue()\l+ addValue()\l+ addValue()\l+ ~Metric()\l+ getName()\l+ getTimestamp()\l+ getValues()\l+ getFirstValue()\l+ getValuesSize()\l+ getTags()\l+ addTag()\l+ addTag()\l+ getVerbosity()\l+ getFirstValueType()\l+ getCurrentTimestamp()\l+ setDefaultVerbosity()\l+ setVerbosityPolicy()\l# setTags()\l# overwriteVerbosity()\l}",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node2 -> Node1 [color="grey25",fontsize="10",style="solid",label=" #mTags" ,arrowhead="odiamond",fontname="Helvetica"]; + Node2 [label="{vector\< std::pair\<\l int, int \> \>\n||}",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node1 [color="grey25",fontsize="10",style="solid",label=" #mVerbosity" ,arrowhead="odiamond",fontname="Helvetica"]; + Node3 [label="{Verbosity\n||}",height=0.2,width=0.4,color="grey75"]; + Node4 -> Node1 [color="grey25",fontsize="10",style="solid",label=" #mTimestamp" ,arrowhead="odiamond",fontname="Helvetica"]; + Node4 [label="{time_point\< std::chrono\l::system_clock \>\n||}",height=0.2,width=0.4,color="grey75"]; + Node5 -> Node1 [color="grey25",fontsize="10",style="solid",label=" #mValues" ,arrowhead="odiamond",fontname="Helvetica"]; + Node5 [label="{vector\< std::pair\<\l std::string, std::variant\l\< int, std::string, double,\l uint64_t \> \> \>\n||}",height=0.2,width=0.4,color="grey75"]; + Node6 -> Node1 [color="grey25",fontsize="10",style="solid",label=" +DefaultVerbosity" ,arrowhead="odiamond",fontname="Helvetica"]; + Node6 [label="{static Verbosity\n||}",height=0.2,width=0.4,color="grey75"]; + Node7 -> Node1 [color="grey25",fontsize="10",style="solid",label=" #mName" ,arrowhead="odiamond",fontname="Helvetica"]; + Node7 [label="{string\n||}",height=0.2,width=0.4,color="grey75"]; + Node8 -> Node1 [color="grey25",fontsize="10",style="solid",label=" +includeTimestamp" ,arrowhead="odiamond",fontname="Helvetica"]; + Node8 [label="{bool\n||}",height=0.2,width=0.4,color="grey75"]; + Node9 -> Node1 [color="grey25",fontsize="10",style="solid",label=" #mRegexPolicy" ,arrowhead="odiamond",fontname="Helvetica"]; + Node9 [label="{map\< std::underlying\l_type\< Verbosity \>::type,\l std::regex \>\n||}",height=0.2,width=0.4,color="grey75"]; + Node10 -> Node1 [color="grey25",fontsize="10",style="solid",label=" #mDefaultValueName" ,arrowhead="odiamond",fontname="Helvetica"]; + Node10 [label="{static constexpr char\n||}",height=0.2,width=0.4,color="grey75"]; +} diff --git a/classo2_1_1monitoring_1_1Metric__coll__graph.map b/classo2_1_1monitoring_1_1Metric__coll__graph.map new file mode 100644 index 000000000..2eb90dc00 --- /dev/null +++ b/classo2_1_1monitoring_1_1Metric__coll__graph.map @@ -0,0 +1,2 @@ + + diff --git a/classo2_1_1monitoring_1_1Metric__coll__graph.md5 b/classo2_1_1monitoring_1_1Metric__coll__graph.md5 new file mode 100644 index 000000000..8510c7aed --- /dev/null +++ b/classo2_1_1monitoring_1_1Metric__coll__graph.md5 @@ -0,0 +1 @@ +8ec237284e7b2b7e53afdee44c148073 \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1Metric__coll__graph.svg b/classo2_1_1monitoring_1_1Metric__coll__graph.svg new file mode 100644 index 000000000..9e32ed4ac --- /dev/null +++ b/classo2_1_1monitoring_1_1Metric__coll__graph.svg @@ -0,0 +1,276 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +o2::monitoring::Metric + +Node1 + +o2::monitoring::Metric + + + ++ Metric() ++ Metric() ++ Metric() ++ Metric() ++ Metric() ++ addValue() ++ addValue() ++ addValue() ++ addValue() ++ addValue() ++ ~Metric() ++ getName() ++ getTimestamp() ++ getValues() ++ getFirstValue() ++ getValuesSize() ++ getTags() ++ addTag() ++ addTag() ++ getVerbosity() ++ getFirstValueType() ++ getCurrentTimestamp() ++ setDefaultVerbosity() ++ setVerbosityPolicy() +# setTags() +# overwriteVerbosity() + + +Node2 + +vector< std::pair< + int, int > > + + + + + + +Node2->Node1 + + + #mTags + + +Node3 + +Verbosity + + + + + + +Node3->Node1 + + + #mVerbosity + + +Node4 + +time_point< std::chrono +::system_clock > + + + + + + +Node4->Node1 + + + #mTimestamp + + +Node5 + +vector< std::pair< + std::string, std::variant +< int, std::string, double, + uint64_t > > > + + + + + + +Node5->Node1 + + + #mValues + + +Node6 + +static Verbosity + + + + + + +Node6->Node1 + + + +DefaultVerbosity + + +Node7 + +string + + + + + + +Node7->Node1 + + + #mName + + +Node8 + +bool + + + + + + +Node8->Node1 + + + +includeTimestamp + + +Node9 + +map< std::underlying +_type< Verbosity >::type, + std::regex > + + + + + + +Node9->Node1 + + + #mRegexPolicy + + +Node10 + +static constexpr char + + + + + + +Node10->Node1 + + + #mDefaultValueName + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/classo2_1_1monitoring_1_1Metric__coll__graph_org.svg b/classo2_1_1monitoring_1_1Metric__coll__graph_org.svg new file mode 100644 index 000000000..ccf6a5f80 --- /dev/null +++ b/classo2_1_1monitoring_1_1Metric__coll__graph_org.svg @@ -0,0 +1,188 @@ + + + + + + +o2::monitoring::Metric + +Node1 + +o2::monitoring::Metric + + + ++ Metric() ++ Metric() ++ Metric() ++ Metric() ++ Metric() ++ addValue() ++ addValue() ++ addValue() ++ addValue() ++ addValue() ++ ~Metric() ++ getName() ++ getTimestamp() ++ getValues() ++ getFirstValue() ++ getValuesSize() ++ getTags() ++ addTag() ++ addTag() ++ getVerbosity() ++ getFirstValueType() ++ getCurrentTimestamp() ++ setDefaultVerbosity() ++ setVerbosityPolicy() +# setTags() +# overwriteVerbosity() + + +Node2 + +vector< std::pair< + int, int > > + + + + + + +Node2->Node1 + + + #mTags + + +Node3 + +Verbosity + + + + + + +Node3->Node1 + + + #mVerbosity + + +Node4 + +time_point< std::chrono +::system_clock > + + + + + + +Node4->Node1 + + + #mTimestamp + + +Node5 + +vector< std::pair< + std::string, std::variant +< int, std::string, double, + uint64_t > > > + + + + + + +Node5->Node1 + + + #mValues + + +Node6 + +static Verbosity + + + + + + +Node6->Node1 + + + +DefaultVerbosity + + +Node7 + +string + + + + + + +Node7->Node1 + + + #mName + + +Node8 + +bool + + + + + + +Node8->Node1 + + + +includeTimestamp + + +Node9 + +map< std::underlying +_type< Verbosity >::type, + std::regex > + + + + + + +Node9->Node1 + + + #mRegexPolicy + + +Node10 + +static constexpr char + + + + + + +Node10->Node1 + + + #mDefaultValueName + + + diff --git a/classo2_1_1monitoring_1_1MonLogger-members.html b/classo2_1_1monitoring_1_1MonLogger-members.html new file mode 100644 index 000000000..270eed386 --- /dev/null +++ b/classo2_1_1monitoring_1_1MonLogger-members.html @@ -0,0 +1,133 @@ + + + + + + +Monitoring: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
o2::monitoring::MonLogger Member List
+
+
+ +

This is the complete list of members for o2::monitoring::MonLogger, including all inherited members.

+ + + + +
End() -> decltype("\033[0m\n")o2::monitoring::MonLoggerinlinestatic
Get(Severity severity=Severity::Info)o2::monitoring::MonLoggerinlinestatic
operator<<(const T &log)o2::monitoring::MonLoggerinline
+
+ + + + diff --git a/classo2_1_1monitoring_1_1MonLogger.html b/classo2_1_1monitoring_1_1MonLogger.html new file mode 100644 index 000000000..153cc8ab4 --- /dev/null +++ b/classo2_1_1monitoring_1_1MonLogger.html @@ -0,0 +1,252 @@ + + + + + + +Monitoring: o2::monitoring::MonLogger Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
o2::monitoring::MonLogger Class Reference
+
+
+ +

Simple Monitoring logging class. + More...

+ +

#include <MonLogger.h>

+
+Collaboration diagram for o2::monitoring::MonLogger:
+
+
+
+
+ + + + + +

+Public Member Functions

template<typename T >
MonLoggeroperator<< (const T &log)
 
+ + + + + +

+Static Public Member Functions

static MonLoggerGet (Severity severity=Severity::Info)
 
static auto End () -> decltype("\033[0m\n")
 
+

Detailed Description

+

Simple Monitoring logging class.

+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + +
static auto o2::monitoring::MonLogger::End () -> decltype("\033[0m\n") +
+
+inlinestatic
+
+

Terminates log line return - string with color termination and new line

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
static MonLogger& o2::monitoring::MonLogger::Get (Severity severity = Severity::Info)
+
+inlinestatic
+
+

Singleton Returns Logger instance with current date and given severity

Parameters
+ + +
severity- severity level
+
+
+
Returns
- logger instance
+ +
+
+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + +
MonLogger& o2::monitoring::MonLogger::operator<< (const T & log)
+
+inline
+
+

Appends value/message to the log

Parameters
+ + +
log- message
+
+
+
Returns
- this to allow chaining
+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/travis/build/AliceO2Group/Monitoring/src/MonLogger.h
  • +
+
+
+ + + + diff --git a/classo2_1_1monitoring_1_1MonLogger.js b/classo2_1_1monitoring_1_1MonLogger.js new file mode 100644 index 000000000..25428654b --- /dev/null +++ b/classo2_1_1monitoring_1_1MonLogger.js @@ -0,0 +1,4 @@ +var classo2_1_1monitoring_1_1MonLogger = +[ + [ "operator<<", "classo2_1_1monitoring_1_1MonLogger.html#a248af7f99d2d663ed38cff9e6900f553", null ] +]; \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1MonLogger__coll__graph.dot b/classo2_1_1monitoring_1_1MonLogger__coll__graph.dot new file mode 100644 index 000000000..b0bfe1d1d --- /dev/null +++ b/classo2_1_1monitoring_1_1MonLogger__coll__graph.dot @@ -0,0 +1,8 @@ +digraph "o2::monitoring::MonLogger" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="{o2::monitoring::MonLogger\n||+ operator\<\<()\l+ Get()\l+ End()\l}",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; +} diff --git a/classo2_1_1monitoring_1_1MonLogger__coll__graph.map b/classo2_1_1monitoring_1_1MonLogger__coll__graph.map new file mode 100644 index 000000000..87d4c0b8e --- /dev/null +++ b/classo2_1_1monitoring_1_1MonLogger__coll__graph.map @@ -0,0 +1,2 @@ + + diff --git a/classo2_1_1monitoring_1_1MonLogger__coll__graph.md5 b/classo2_1_1monitoring_1_1MonLogger__coll__graph.md5 new file mode 100644 index 000000000..dfcbcba2c --- /dev/null +++ b/classo2_1_1monitoring_1_1MonLogger__coll__graph.md5 @@ -0,0 +1 @@ +3f6d730cf80c41abbd2bc681d741b900 \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1MonLogger__coll__graph.svg b/classo2_1_1monitoring_1_1MonLogger__coll__graph.svg new file mode 100644 index 000000000..c8cd983ff --- /dev/null +++ b/classo2_1_1monitoring_1_1MonLogger__coll__graph.svg @@ -0,0 +1,23 @@ + + + + + + +o2::monitoring::MonLogger + +Node1 + +o2::monitoring::MonLogger + + + ++ operator<<() ++ Get() ++ End() + + + diff --git a/classo2_1_1monitoring_1_1Monitoring-members.html b/classo2_1_1monitoring_1_1Monitoring-members.html new file mode 100644 index 000000000..115b1106d --- /dev/null +++ b/classo2_1_1monitoring_1_1Monitoring-members.html @@ -0,0 +1,141 @@ + + + + + + +Monitoring: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
o2::monitoring::Monitoring Member List
+
+
+ +

This is the complete list of members for o2::monitoring::Monitoring, including all inherited members.

+ + + + + + + + + + + + +
addBackend(std::unique_ptr< Backend > backend)o2::monitoring::Monitoring
addGlobalTag(std::string_view name, std::string_view value)o2::monitoring::Monitoring
addGlobalTag(tags::Key key, tags::Value value)o2::monitoring::Monitoring
enableBuffering(const std::size_t size=128)o2::monitoring::Monitoring
enableProcessMonitoring(const unsigned int interval=5)o2::monitoring::Monitoring
flushBuffer()o2::monitoring::Monitoring
Monitoring(const Monitoring &)=deleteo2::monitoring::Monitoring
Monitoring()o2::monitoring::Monitoring
operator=(const Monitoring &)=deleteo2::monitoring::Monitoring
send(Metric &&metric, DerivedMetricMode mode=DerivedMetricMode::NONE)o2::monitoring::Monitoring
~Monitoring()o2::monitoring::Monitoring
+
+ + + + diff --git a/classo2_1_1monitoring_1_1Monitoring.html b/classo2_1_1monitoring_1_1Monitoring.html new file mode 100644 index 000000000..16adb6e10 --- /dev/null +++ b/classo2_1_1monitoring_1_1Monitoring.html @@ -0,0 +1,331 @@ + + + + + + +Monitoring: o2::monitoring::Monitoring Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
o2::monitoring::Monitoring Class Reference
+
+
+ +

Main class that collects metrics from user and dispatches them to selected monitoring backends. + More...

+ +

#include <Monitoring.h>

+
+Collaboration diagram for o2::monitoring::Monitoring:
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

+Monitoringoperator= (const Monitoring &)=delete
 Disable copy constructor.
 
Monitoring (const Monitoring &)=delete
 Disable copy constructor.
 
Monitoring ()
 Instantiates derived metrics processor (see DerivedMetrics) and process monitor (seeProcessMonitor).
 
+void addBackend (std::unique_ptr< Backend > backend)
 Creates and appends backend to the backend list.
 
~Monitoring ()
 Joins process monitor thread if possible.
 
void send (Metric &&metric, DerivedMetricMode mode=DerivedMetricMode::NONE)
 
void enableProcessMonitoring (const unsigned int interval=5)
 
+void flushBuffer ()
 Flushes metric buffer (this can also happen when buffer is full)
 
void enableBuffering (const std::size_t size=128)
 
void addGlobalTag (std::string_view name, std::string_view value)
 
void addGlobalTag (tags::Key key, tags::Value value)
 
+

Detailed Description

+

Main class that collects metrics from user and dispatches them to selected monitoring backends.

+

Collects user-defined metrics (seeMetric class) and pushes them through all selected backends (seeBackend). Calculates derived metrics such as rate and increment value (seeDerivedMetrics class). Adds default tags to each metric: proces name, hostname (seeProcessDetails class) Monitors the process itself - including memory, cpu and network usage (seeProcessMonitor class).

+

Member Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
void o2::monitoring::Monitoring::addGlobalTag (std::string_view name,
std::string_view value 
)
+
+

Adds global tag

Parameters
+ + + +
nametag name
valuetag value
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void o2::monitoring::Monitoring::addGlobalTag (tags::Key key,
tags::Value value 
)
+
+

Adds global tag

Parameters
+ + + +
nametag name
valuetag value
+
+
+ +
+
+ +
+
+ + + + + + + + +
void o2::monitoring::Monitoring::enableBuffering (const std::size_t size = 128)
+
+

Enables metric buffering

Parameters
+ + +
sizebuffer size
+
+
+ +
+
+ +
+
+ + + + + + + + +
void o2::monitoring::Monitoring::enableProcessMonitoring (const unsigned int interval = 5)
+
+

Enables process monitoring

Parameters
+ + +
intervalrefresh interval
+
+
+ +
+
+ +
+
+ + + + + + + + + + + + + + + + + + +
void o2::monitoring::Monitoring::send (Metric && metric,
DerivedMetricMode mode = DerivedMetricMode::NONE 
)
+
+

Sends a metric to all avaliabes backends If DerivedMetricMode is specified it generates and sends derived metric

Parameters
+ + + +
metricr-value to metric object
modeDerived metric mode
+
+
+ +
+
+
The documentation for this class was generated from the following files:
    +
  • /home/travis/build/AliceO2Group/Monitoring/include/Monitoring/Monitoring.h
  • +
  • /home/travis/build/AliceO2Group/Monitoring/src/Monitoring.cxx
  • +
+
+
+ + + + diff --git a/classo2_1_1monitoring_1_1Monitoring.js b/classo2_1_1monitoring_1_1Monitoring.js new file mode 100644 index 000000000..9c5e402a2 --- /dev/null +++ b/classo2_1_1monitoring_1_1Monitoring.js @@ -0,0 +1,14 @@ +var classo2_1_1monitoring_1_1Monitoring = +[ + [ "Monitoring", "classo2_1_1monitoring_1_1Monitoring.html#a1d03167696a62ea65760f05719528ba8", null ], + [ "Monitoring", "classo2_1_1monitoring_1_1Monitoring.html#af60d643d981a73feac969dcc394ac6ef", null ], + [ "~Monitoring", "classo2_1_1monitoring_1_1Monitoring.html#a2c674631acd35e6c23d14ed3233ec83c", null ], + [ "addBackend", "classo2_1_1monitoring_1_1Monitoring.html#a548350ec288e69ad3777cb3057bf9743", null ], + [ "addGlobalTag", "classo2_1_1monitoring_1_1Monitoring.html#ab66ef7bf191129aeffe52fb6d53c0d8c", null ], + [ "addGlobalTag", "classo2_1_1monitoring_1_1Monitoring.html#a84a1765cf76a3915bce9c81a3175ddcb", null ], + [ "enableBuffering", "classo2_1_1monitoring_1_1Monitoring.html#ac7ff75f0d8352f4d4e8a757e3658c561", null ], + [ "enableProcessMonitoring", "classo2_1_1monitoring_1_1Monitoring.html#aaf4b013523f466f6f2e15bcc321fda0e", null ], + [ "flushBuffer", "classo2_1_1monitoring_1_1Monitoring.html#a232628a04646d1188e812ed9c4338788", null ], + [ "operator=", "classo2_1_1monitoring_1_1Monitoring.html#ad2c62aa9bca85c77fa19a5b933db2f5c", null ], + [ "send", "classo2_1_1monitoring_1_1Monitoring.html#a5419ff3a2a8a28a319b7152b6790c202", null ] +]; \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1MonitoringException-members.html b/classo2_1_1monitoring_1_1MonitoringException-members.html new file mode 100644 index 000000000..9fc915902 --- /dev/null +++ b/classo2_1_1monitoring_1_1MonitoringException-members.html @@ -0,0 +1,134 @@ + + + + + + +Monitoring: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
o2::monitoring::MonitoringException Member List
+
+
+ +

This is the complete list of members for o2::monitoring::MonitoringException, including all inherited members.

+ + + + + +
MonitoringException(const std::string &source, const std::string &message) (defined in o2::monitoring::MonitoringException)o2::monitoring::MonitoringException
MonitoringException(int code, const std::string &source, const std::string &message) (defined in o2::monitoring::MonitoringException)o2::monitoring::MonitoringException
what() const (defined in o2::monitoring::MonitoringException)o2::monitoring::MonitoringException
~MonitoringException()=default (defined in o2::monitoring::MonitoringException)o2::monitoring::MonitoringException
+
+ + + + diff --git a/classo2_1_1monitoring_1_1MonitoringException.html b/classo2_1_1monitoring_1_1MonitoringException.html new file mode 100644 index 000000000..333f33d7c --- /dev/null +++ b/classo2_1_1monitoring_1_1MonitoringException.html @@ -0,0 +1,167 @@ + + + + + + +Monitoring: o2::monitoring::MonitoringException Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
o2::monitoring::MonitoringException Class Reference
+
+
+ +

Internal monitoring exception. + More...

+ +

#include <MonitoringException.h>

+
+Inheritance diagram for o2::monitoring::MonitoringException:
+
+
+
+
+
+Collaboration diagram for o2::monitoring::MonitoringException:
+
+
+
+
+ + + + + + + + +

+Public Member Functions

MonitoringException (const std::string &source, const std::string &message)
 
MonitoringException (int code, const std::string &source, const std::string &message)
 
+const char * what () const throw ()
 
+

Detailed Description

+

Internal monitoring exception.

+

The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/classo2_1_1monitoring_1_1MonitoringException.js b/classo2_1_1monitoring_1_1MonitoringException.js new file mode 100644 index 000000000..edb8767fe --- /dev/null +++ b/classo2_1_1monitoring_1_1MonitoringException.js @@ -0,0 +1,7 @@ +var classo2_1_1monitoring_1_1MonitoringException = +[ + [ "MonitoringException", "classo2_1_1monitoring_1_1MonitoringException.html#a9b00c5d4502958fa005ec5d539d66f5a", null ], + [ "MonitoringException", "classo2_1_1monitoring_1_1MonitoringException.html#adc38563f0cc1cc0064560a39f3938ea0", null ], + [ "~MonitoringException", "classo2_1_1monitoring_1_1MonitoringException.html#a10550a9c8206463564afcd9110d93f46", null ], + [ "what", "classo2_1_1monitoring_1_1MonitoringException.html#a10f6a2f6d919e3d1844d3fe2d6226998", null ] +]; \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1MonitoringException__coll__graph.dot b/classo2_1_1monitoring_1_1MonitoringException__coll__graph.dot new file mode 100644 index 000000000..4501c55e9 --- /dev/null +++ b/classo2_1_1monitoring_1_1MonitoringException__coll__graph.dot @@ -0,0 +1,10 @@ +digraph "o2::monitoring::MonitoringException" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="{o2::monitoring::Monitoring\lException\n||+ MonitoringException()\l+ MonitoringException()\l+ ~MonitoringException()\l+ what()\l}",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; + Node2 [label="{std::exception\n||}",height=0.2,width=0.4,color="grey75"]; +} diff --git a/classo2_1_1monitoring_1_1MonitoringException__coll__graph.map b/classo2_1_1monitoring_1_1MonitoringException__coll__graph.map new file mode 100644 index 000000000..38842fc37 --- /dev/null +++ b/classo2_1_1monitoring_1_1MonitoringException__coll__graph.map @@ -0,0 +1,2 @@ + + diff --git a/classo2_1_1monitoring_1_1MonitoringException__coll__graph.md5 b/classo2_1_1monitoring_1_1MonitoringException__coll__graph.md5 new file mode 100644 index 000000000..5bc9e15e7 --- /dev/null +++ b/classo2_1_1monitoring_1_1MonitoringException__coll__graph.md5 @@ -0,0 +1 @@ +e92b720c2308f5162b3788500aaeb86f \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1MonitoringException__coll__graph.svg b/classo2_1_1monitoring_1_1MonitoringException__coll__graph.svg new file mode 100644 index 000000000..59ed0bb2a --- /dev/null +++ b/classo2_1_1monitoring_1_1MonitoringException__coll__graph.svg @@ -0,0 +1,39 @@ + + + + + + +o2::monitoring::MonitoringException + +Node1 + +o2::monitoring::Monitoring +Exception + + + ++ MonitoringException() ++ MonitoringException() ++ ~MonitoringException() ++ what() + + +Node2 + +std::exception + + + + + + +Node2->Node1 + + + + + diff --git a/classo2_1_1monitoring_1_1MonitoringException__inherit__graph.dot b/classo2_1_1monitoring_1_1MonitoringException__inherit__graph.dot new file mode 100644 index 000000000..4501c55e9 --- /dev/null +++ b/classo2_1_1monitoring_1_1MonitoringException__inherit__graph.dot @@ -0,0 +1,10 @@ +digraph "o2::monitoring::MonitoringException" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="{o2::monitoring::Monitoring\lException\n||+ MonitoringException()\l+ MonitoringException()\l+ ~MonitoringException()\l+ what()\l}",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; + Node2 [label="{std::exception\n||}",height=0.2,width=0.4,color="grey75"]; +} diff --git a/classo2_1_1monitoring_1_1MonitoringException__inherit__graph.map b/classo2_1_1monitoring_1_1MonitoringException__inherit__graph.map new file mode 100644 index 000000000..38842fc37 --- /dev/null +++ b/classo2_1_1monitoring_1_1MonitoringException__inherit__graph.map @@ -0,0 +1,2 @@ + + diff --git a/classo2_1_1monitoring_1_1MonitoringException__inherit__graph.md5 b/classo2_1_1monitoring_1_1MonitoringException__inherit__graph.md5 new file mode 100644 index 000000000..5bc9e15e7 --- /dev/null +++ b/classo2_1_1monitoring_1_1MonitoringException__inherit__graph.md5 @@ -0,0 +1 @@ +e92b720c2308f5162b3788500aaeb86f \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1MonitoringException__inherit__graph.svg b/classo2_1_1monitoring_1_1MonitoringException__inherit__graph.svg new file mode 100644 index 000000000..59ed0bb2a --- /dev/null +++ b/classo2_1_1monitoring_1_1MonitoringException__inherit__graph.svg @@ -0,0 +1,39 @@ + + + + + + +o2::monitoring::MonitoringException + +Node1 + +o2::monitoring::Monitoring +Exception + + + ++ MonitoringException() ++ MonitoringException() ++ ~MonitoringException() ++ what() + + +Node2 + +std::exception + + + + + + +Node2->Node1 + + + + + diff --git a/classo2_1_1monitoring_1_1MonitoringFactory-members.html b/classo2_1_1monitoring_1_1MonitoringFactory-members.html new file mode 100644 index 000000000..0cedbbcbb --- /dev/null +++ b/classo2_1_1monitoring_1_1MonitoringFactory-members.html @@ -0,0 +1,134 @@ + + + + + + +Monitoring: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
o2::monitoring::MonitoringFactory Member List
+
+
+ +

This is the complete list of members for o2::monitoring::MonitoringFactory, including all inherited members.

+ + + + + +
Get(std::string urlsString) noexcept(false)o2::monitoring::MonitoringFactorystatic
GetBackend(std::string &url)o2::monitoring::MonitoringFactorystatic
MonitoringFactory(const MonitoringFactory &)=delete (defined in o2::monitoring::MonitoringFactory)o2::monitoring::MonitoringFactory
operator=(const MonitoringFactory &)=deleteo2::monitoring::MonitoringFactory
+
+ + + + diff --git a/classo2_1_1monitoring_1_1MonitoringFactory.html b/classo2_1_1monitoring_1_1MonitoringFactory.html new file mode 100644 index 000000000..973a762d0 --- /dev/null +++ b/classo2_1_1monitoring_1_1MonitoringFactory.html @@ -0,0 +1,230 @@ + + + + + + +Monitoring: o2::monitoring::MonitoringFactory Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
o2::monitoring::MonitoringFactory Class Reference
+
+
+ +

Monitoring and monitoring backends factory. + More...

+ +

#include <MonitoringFactory.h>

+
+Collaboration diagram for o2::monitoring::MonitoringFactory:
+
+
+
+
+ + + + + + + +

+Public Member Functions

+MonitoringFactoryoperator= (const MonitoringFactory &)=delete
 Disables copy constructor.
 
MonitoringFactory (const MonitoringFactory &)=delete
 
+ + + + + +

+Static Public Member Functions

static std::unique_ptr< MonitoringGet (std::string urlsString) noexcept(false)
 
static std::unique_ptr< BackendGetBackend (std::string &url)
 
+

Detailed Description

+

Monitoring and monitoring backends factory.

+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + +
std::unique_ptr< Monitoring > o2::monitoring::MonitoringFactory::Get (std::string urlsString)
+
+staticnoexcept
+
+

Provides single instance on Monitoring Monitoring (singleton)

Returns
renerence to Monitoring instance
+
Exceptions
+ + +
MonitoringExceptionwhen backend initialisation failed
+
+
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
std::unique_ptr< Backend > o2::monitoring::MonitoringFactory::GetBackend (std::string & url)
+
+static
+
+

Provides a Monitoring backend based on the URL

Returns
monitoring backend
+
Exceptions
+ + +
MonitoringExceptionwhen backend initialisation failed
+
+
+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/classo2_1_1monitoring_1_1MonitoringFactory.js b/classo2_1_1monitoring_1_1MonitoringFactory.js new file mode 100644 index 000000000..c6135e7aa --- /dev/null +++ b/classo2_1_1monitoring_1_1MonitoringFactory.js @@ -0,0 +1,5 @@ +var classo2_1_1monitoring_1_1MonitoringFactory = +[ + [ "MonitoringFactory", "classo2_1_1monitoring_1_1MonitoringFactory.html#a2b1165831f32ea7119b8b22dfa14ba5e", null ], + [ "operator=", "classo2_1_1monitoring_1_1MonitoringFactory.html#aacadbff97348138dd042eec39b058a9f", null ] +]; \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1MonitoringFactory__coll__graph.dot b/classo2_1_1monitoring_1_1MonitoringFactory__coll__graph.dot new file mode 100644 index 000000000..97eec43ee --- /dev/null +++ b/classo2_1_1monitoring_1_1MonitoringFactory__coll__graph.dot @@ -0,0 +1,8 @@ +digraph "o2::monitoring::MonitoringFactory" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="{o2::monitoring::Monitoring\lFactory\n||+ operator=()\l+ MonitoringFactory()\l+ Get()\l+ GetBackend()\l}",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; +} diff --git a/classo2_1_1monitoring_1_1MonitoringFactory__coll__graph.map b/classo2_1_1monitoring_1_1MonitoringFactory__coll__graph.map new file mode 100644 index 000000000..338f0ee46 --- /dev/null +++ b/classo2_1_1monitoring_1_1MonitoringFactory__coll__graph.map @@ -0,0 +1,2 @@ + + diff --git a/classo2_1_1monitoring_1_1MonitoringFactory__coll__graph.md5 b/classo2_1_1monitoring_1_1MonitoringFactory__coll__graph.md5 new file mode 100644 index 000000000..8c01a4ce0 --- /dev/null +++ b/classo2_1_1monitoring_1_1MonitoringFactory__coll__graph.md5 @@ -0,0 +1 @@ +238a11ca25790b1d86e1354fecd6810f \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1MonitoringFactory__coll__graph.svg b/classo2_1_1monitoring_1_1MonitoringFactory__coll__graph.svg new file mode 100644 index 000000000..7a1ba1436 --- /dev/null +++ b/classo2_1_1monitoring_1_1MonitoringFactory__coll__graph.svg @@ -0,0 +1,25 @@ + + + + + + +o2::monitoring::MonitoringFactory + +Node1 + +o2::monitoring::Monitoring +Factory + + + ++ operator=() ++ MonitoringFactory() ++ Get() ++ GetBackend() + + + diff --git a/classo2_1_1monitoring_1_1Monitoring__coll__graph.dot b/classo2_1_1monitoring_1_1Monitoring__coll__graph.dot new file mode 100644 index 000000000..c4928dd9d --- /dev/null +++ b/classo2_1_1monitoring_1_1Monitoring__coll__graph.dot @@ -0,0 +1,8 @@ +digraph "o2::monitoring::Monitoring" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="{o2::monitoring::Monitoring\n||+ operator=()\l+ Monitoring()\l+ Monitoring()\l+ addBackend()\l+ ~Monitoring()\l+ send()\l+ enableProcessMonitoring()\l+ flushBuffer()\l+ enableBuffering()\l+ addGlobalTag()\l+ addGlobalTag()\l}",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; +} diff --git a/classo2_1_1monitoring_1_1Monitoring__coll__graph.map b/classo2_1_1monitoring_1_1Monitoring__coll__graph.map new file mode 100644 index 000000000..da655ce02 --- /dev/null +++ b/classo2_1_1monitoring_1_1Monitoring__coll__graph.map @@ -0,0 +1,2 @@ + + diff --git a/classo2_1_1monitoring_1_1Monitoring__coll__graph.md5 b/classo2_1_1monitoring_1_1Monitoring__coll__graph.md5 new file mode 100644 index 000000000..3895d0a8e --- /dev/null +++ b/classo2_1_1monitoring_1_1Monitoring__coll__graph.md5 @@ -0,0 +1 @@ +3304454b918c4bd5ad980658de618c49 \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1Monitoring__coll__graph.svg b/classo2_1_1monitoring_1_1Monitoring__coll__graph.svg new file mode 100644 index 000000000..c9b1e1cda --- /dev/null +++ b/classo2_1_1monitoring_1_1Monitoring__coll__graph.svg @@ -0,0 +1,31 @@ + + + + + + +o2::monitoring::Monitoring + +Node1 + +o2::monitoring::Monitoring + + + ++ operator=() ++ Monitoring() ++ Monitoring() ++ addBackend() ++ ~Monitoring() ++ send() ++ enableProcessMonitoring() ++ flushBuffer() ++ enableBuffering() ++ addGlobalTag() ++ addGlobalTag() + + + diff --git a/classo2_1_1monitoring_1_1ProcessDetails-members.html b/classo2_1_1monitoring_1_1ProcessDetails-members.html new file mode 100644 index 000000000..35d9eeac8 --- /dev/null +++ b/classo2_1_1monitoring_1_1ProcessDetails-members.html @@ -0,0 +1,134 @@ + + + + + + +Monitoring: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
o2::monitoring::ProcessDetails Member List
+
+ +
+ + + + diff --git a/classo2_1_1monitoring_1_1ProcessDetails.html b/classo2_1_1monitoring_1_1ProcessDetails.html new file mode 100644 index 000000000..f385700f1 --- /dev/null +++ b/classo2_1_1monitoring_1_1ProcessDetails.html @@ -0,0 +1,168 @@ + + + + + + +Monitoring: o2::monitoring::ProcessDetails Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
o2::monitoring::ProcessDetails Class Reference
+
+
+ +

Collects process and machine related details such as PID, process name, hostname. + More...

+ +

#include <ProcessDetails.h>

+
+Collaboration diagram for o2::monitoring::ProcessDetails:
+
+
+
+
+ + + + + + + + + + + + + + +

+Public Member Functions

ProcessDetails ()
 Generates all data.
 
+unsigned int getPid () const
 PID getter.
 
+std::string getProcessName () const
 Process name getter.
 
+std::string getHostname () const
 Hostname getter.
 
+

Detailed Description

+

Collects process and machine related details such as PID, process name, hostname.

+

The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/classo2_1_1monitoring_1_1ProcessDetails.js b/classo2_1_1monitoring_1_1ProcessDetails.js new file mode 100644 index 000000000..fd7b6e777 --- /dev/null +++ b/classo2_1_1monitoring_1_1ProcessDetails.js @@ -0,0 +1,7 @@ +var classo2_1_1monitoring_1_1ProcessDetails = +[ + [ "ProcessDetails", "classo2_1_1monitoring_1_1ProcessDetails.html#a49de7dfd0da3566fcc4555e328bb3e78", null ], + [ "getHostname", "classo2_1_1monitoring_1_1ProcessDetails.html#a6e22e79867e10077e59c86e7ccc291e5", null ], + [ "getPid", "classo2_1_1monitoring_1_1ProcessDetails.html#a98a272bf070c0e46f7e4beca9ac02ba6", null ], + [ "getProcessName", "classo2_1_1monitoring_1_1ProcessDetails.html#a8cdd3b7bcad6e695db26d177d44f7d6e", null ] +]; \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1ProcessDetails__coll__graph.dot b/classo2_1_1monitoring_1_1ProcessDetails__coll__graph.dot new file mode 100644 index 000000000..a6ff45718 --- /dev/null +++ b/classo2_1_1monitoring_1_1ProcessDetails__coll__graph.dot @@ -0,0 +1,8 @@ +digraph "o2::monitoring::ProcessDetails" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="{o2::monitoring::ProcessDetails\n||+ ProcessDetails()\l+ getPid()\l+ getProcessName()\l+ getHostname()\l}",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; +} diff --git a/classo2_1_1monitoring_1_1ProcessDetails__coll__graph.map b/classo2_1_1monitoring_1_1ProcessDetails__coll__graph.map new file mode 100644 index 000000000..83f5553f8 --- /dev/null +++ b/classo2_1_1monitoring_1_1ProcessDetails__coll__graph.map @@ -0,0 +1,2 @@ + + diff --git a/classo2_1_1monitoring_1_1ProcessDetails__coll__graph.md5 b/classo2_1_1monitoring_1_1ProcessDetails__coll__graph.md5 new file mode 100644 index 000000000..df25376b0 --- /dev/null +++ b/classo2_1_1monitoring_1_1ProcessDetails__coll__graph.md5 @@ -0,0 +1 @@ +4999306fba8becc019ee3c914c292bf5 \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1ProcessDetails__coll__graph.svg b/classo2_1_1monitoring_1_1ProcessDetails__coll__graph.svg new file mode 100644 index 000000000..57bf993f4 --- /dev/null +++ b/classo2_1_1monitoring_1_1ProcessDetails__coll__graph.svg @@ -0,0 +1,24 @@ + + + + + + +o2::monitoring::ProcessDetails + +Node1 + +o2::monitoring::ProcessDetails + + + ++ ProcessDetails() ++ getPid() ++ getProcessName() ++ getHostname() + + + diff --git a/classo2_1_1monitoring_1_1ProcessMonitor-members.html b/classo2_1_1monitoring_1_1ProcessMonitor-members.html new file mode 100644 index 000000000..889c42043 --- /dev/null +++ b/classo2_1_1monitoring_1_1ProcessMonitor-members.html @@ -0,0 +1,148 @@ + + + + + + +Monitoring: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
o2::monitoring::ProcessMonitor Member List
+
+
+ +

This is the complete list of members for o2::monitoring::ProcessMonitor, including all inherited members.

+ + + + + + + + + + + + + + + + + + + +
ACCUMULATED_CPU_TIME enum value (defined in o2::monitoring::ProcessMonitor)o2::monitoring::ProcessMonitor
AVAILABLE_METRICS_SIZE enum value (defined in o2::monitoring::ProcessMonitor)o2::monitoring::ProcessMonitor
AVG_CPU_USED_PERCENTAGE enum value (defined in o2::monitoring::ProcessMonitor)o2::monitoring::ProcessMonitor
AVG_RESIDENT_SET_SIZE enum value (defined in o2::monitoring::ProcessMonitor)o2::monitoring::ProcessMonitor
AVG_VIRTUAL_MEMORY_SIZE enum value (defined in o2::monitoring::ProcessMonitor)o2::monitoring::ProcessMonitor
CPU_USED_ABSOLUTE enum value (defined in o2::monitoring::ProcessMonitor)o2::monitoring::ProcessMonitor
CPU_USED_PERCENTAGE enum value (defined in o2::monitoring::ProcessMonitor)o2::monitoring::ProcessMonitor
getAvailableMetricsNames() (defined in o2::monitoring::ProcessMonitor)o2::monitoring::ProcessMonitorstatic
getPerformanceMetrics() (defined in o2::monitoring::ProcessMonitor)o2::monitoring::ProcessMonitor
init() (defined in o2::monitoring::ProcessMonitor)o2::monitoring::ProcessMonitor
INVOLUNTARY_CONTEXT_SWITCHING enum value (defined in o2::monitoring::ProcessMonitor)o2::monitoring::ProcessMonitor
MEMORY_USAGE_PERCENTAGE enum value (defined in o2::monitoring::ProcessMonitor)o2::monitoring::ProcessMonitor
Monitoring (defined in o2::monitoring::ProcessMonitor)o2::monitoring::ProcessMonitorfriend
ProcessMonitor()o2::monitoring::ProcessMonitor
PSS enum value (defined in o2::monitoring::ProcessMonitor)o2::monitoring::ProcessMonitor
RESIDENT_SET_SIZE enum value (defined in o2::monitoring::ProcessMonitor)o2::monitoring::ProcessMonitor
VIRTUAL_MEMORY_SIZE enum value (defined in o2::monitoring::ProcessMonitor)o2::monitoring::ProcessMonitor
~ProcessMonitor()=defaulto2::monitoring::ProcessMonitor
+
+ + + + diff --git a/classo2_1_1monitoring_1_1ProcessMonitor.html b/classo2_1_1monitoring_1_1ProcessMonitor.html new file mode 100644 index 000000000..9d003e1b2 --- /dev/null +++ b/classo2_1_1monitoring_1_1ProcessMonitor.html @@ -0,0 +1,202 @@ + + + + + + +Monitoring: o2::monitoring::ProcessMonitor Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
o2::monitoring::ProcessMonitor Class Reference
+
+
+ +

Monitors current process and/or other processes running at the same machien. + More...

+ +

#include <ProcessMonitor.h>

+
+Collaboration diagram for o2::monitoring::ProcessMonitor:
+
+
+
+
+ + + + +

+Public Types

enum  {
+  MEMORY_USAGE_PERCENTAGE = 0, +VIRTUAL_MEMORY_SIZE, +RESIDENT_SET_SIZE, +CPU_USED_PERCENTAGE, +
+  INVOLUNTARY_CONTEXT_SWITCHING, +CPU_USED_ABSOLUTE, +AVG_RESIDENT_SET_SIZE, +AVG_VIRTUAL_MEMORY_SIZE, +
+  AVG_CPU_USED_PERCENTAGE, +ACCUMULATED_CPU_TIME, +PSS, +AVAILABLE_METRICS_SIZE +
+ }
 
+ + + + + + + + + + + +

+Public Member Functions

+std::vector< MetricgetPerformanceMetrics ()
 
ProcessMonitor ()
 Prepares externam software commands (ps)
 
~ProcessMonitor ()=default
 Default destructor.
 
+void init ()
 
+ + + +

+Static Public Member Functions

+static std::vector< std::string > getAvailableMetricsNames ()
 
+ + + +

+Friends

+class Monitoring
 
+

Detailed Description

+

Monitors current process and/or other processes running at the same machien.

+

The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/classo2_1_1monitoring_1_1ProcessMonitor.js b/classo2_1_1monitoring_1_1ProcessMonitor.js new file mode 100644 index 000000000..44f83c903 --- /dev/null +++ b/classo2_1_1monitoring_1_1ProcessMonitor.js @@ -0,0 +1,20 @@ +var classo2_1_1monitoring_1_1ProcessMonitor = +[ + [ "MEMORY_USAGE_PERCENTAGE", "classo2_1_1monitoring_1_1ProcessMonitor.html#a604d469bbec9d2185ce0e0133c1cf41caef2fdff69f9b5caa68be7782fa95b9f6", null ], + [ "VIRTUAL_MEMORY_SIZE", "classo2_1_1monitoring_1_1ProcessMonitor.html#a604d469bbec9d2185ce0e0133c1cf41caf3a79d6dbfcfb35633c5e977bec8470f", null ], + [ "RESIDENT_SET_SIZE", "classo2_1_1monitoring_1_1ProcessMonitor.html#a604d469bbec9d2185ce0e0133c1cf41caad1bc77904a6e2e23e6ce4d56b6f446e", null ], + [ "CPU_USED_PERCENTAGE", "classo2_1_1monitoring_1_1ProcessMonitor.html#a604d469bbec9d2185ce0e0133c1cf41cab7ef42a8ef4458c65548fd1d6b87e01e", null ], + [ "INVOLUNTARY_CONTEXT_SWITCHING", "classo2_1_1monitoring_1_1ProcessMonitor.html#a604d469bbec9d2185ce0e0133c1cf41ca7dddf57616fd1ea78e992feaada7454a", null ], + [ "CPU_USED_ABSOLUTE", "classo2_1_1monitoring_1_1ProcessMonitor.html#a604d469bbec9d2185ce0e0133c1cf41ca0023dac612dc36ac6f53e13b6de88c01", null ], + [ "AVG_RESIDENT_SET_SIZE", "classo2_1_1monitoring_1_1ProcessMonitor.html#a604d469bbec9d2185ce0e0133c1cf41ca102d96616ce2774d0c6cf7474266f050", null ], + [ "AVG_VIRTUAL_MEMORY_SIZE", "classo2_1_1monitoring_1_1ProcessMonitor.html#a604d469bbec9d2185ce0e0133c1cf41cae48ca0af2ef320a1b86c3fd2804aadfc", null ], + [ "AVG_CPU_USED_PERCENTAGE", "classo2_1_1monitoring_1_1ProcessMonitor.html#a604d469bbec9d2185ce0e0133c1cf41ca47dc9f764412805d96ebde45f79e418a", null ], + [ "ACCUMULATED_CPU_TIME", "classo2_1_1monitoring_1_1ProcessMonitor.html#a604d469bbec9d2185ce0e0133c1cf41cad24ef0a8c7b89259177a01d3068c12cc", null ], + [ "PSS", "classo2_1_1monitoring_1_1ProcessMonitor.html#a604d469bbec9d2185ce0e0133c1cf41ca45baeb6406d48668e02438e508a840f6", null ], + [ "AVAILABLE_METRICS_SIZE", "classo2_1_1monitoring_1_1ProcessMonitor.html#a604d469bbec9d2185ce0e0133c1cf41cafb30b2ae3b35912b108f0c1508f5909e", null ], + [ "ProcessMonitor", "classo2_1_1monitoring_1_1ProcessMonitor.html#ad499bd2d59f2c86fc53f927f08122460", null ], + [ "~ProcessMonitor", "classo2_1_1monitoring_1_1ProcessMonitor.html#aac2fbc7b1a2d534970acbf33f0cd0de8", null ], + [ "getPerformanceMetrics", "classo2_1_1monitoring_1_1ProcessMonitor.html#a1c3f6eedf962632a50af65fdcd5532a6", null ], + [ "init", "classo2_1_1monitoring_1_1ProcessMonitor.html#a2e8b14a153e6499cd46e3514e4b9b169", null ], + [ "Monitoring", "classo2_1_1monitoring_1_1ProcessMonitor.html#ada57d673a00219e3231a06f1372a27e7", null ] +]; \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1ProcessMonitor__coll__graph.dot b/classo2_1_1monitoring_1_1ProcessMonitor__coll__graph.dot new file mode 100644 index 000000000..e0114e8ae --- /dev/null +++ b/classo2_1_1monitoring_1_1ProcessMonitor__coll__graph.dot @@ -0,0 +1,8 @@ +digraph "o2::monitoring::ProcessMonitor" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="{o2::monitoring::ProcessMonitor\n||+ getPerformanceMetrics()\l+ ProcessMonitor()\l+ ~ProcessMonitor()\l+ init()\l+ getAvailableMetricsNames()\l}",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; +} diff --git a/classo2_1_1monitoring_1_1ProcessMonitor__coll__graph.map b/classo2_1_1monitoring_1_1ProcessMonitor__coll__graph.map new file mode 100644 index 000000000..306ced3c8 --- /dev/null +++ b/classo2_1_1monitoring_1_1ProcessMonitor__coll__graph.map @@ -0,0 +1,2 @@ + + diff --git a/classo2_1_1monitoring_1_1ProcessMonitor__coll__graph.md5 b/classo2_1_1monitoring_1_1ProcessMonitor__coll__graph.md5 new file mode 100644 index 000000000..b5327ab7b --- /dev/null +++ b/classo2_1_1monitoring_1_1ProcessMonitor__coll__graph.md5 @@ -0,0 +1 @@ +52569462f342015aa6685b4b3a9c0b0d \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1ProcessMonitor__coll__graph.svg b/classo2_1_1monitoring_1_1ProcessMonitor__coll__graph.svg new file mode 100644 index 000000000..542c8a030 --- /dev/null +++ b/classo2_1_1monitoring_1_1ProcessMonitor__coll__graph.svg @@ -0,0 +1,25 @@ + + + + + + +o2::monitoring::ProcessMonitor + +Node1 + +o2::monitoring::ProcessMonitor + + + ++ getPerformanceMetrics() ++ ProcessMonitor() ++ ~ProcessMonitor() ++ init() ++ getAvailableMetricsNames() + + + diff --git a/classo2_1_1monitoring_1_1VariantVisitorAdd-members.html b/classo2_1_1monitoring_1_1VariantVisitorAdd-members.html new file mode 100644 index 000000000..03591c73a --- /dev/null +++ b/classo2_1_1monitoring_1_1VariantVisitorAdd-members.html @@ -0,0 +1,132 @@ + + + + + + +Monitoring: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
o2::monitoring::VariantVisitorAdd Member List
+
+
+ +

This is the complete list of members for o2::monitoring::VariantVisitorAdd, including all inherited members.

+ + + +
operator()(const T &a, const T &b) const o2::monitoring::VariantVisitorAddinline
operator()(const T &, const U &) const o2::monitoring::VariantVisitorAddinline
+
+ + + + diff --git a/classo2_1_1monitoring_1_1VariantVisitorAdd.html b/classo2_1_1monitoring_1_1VariantVisitorAdd.html new file mode 100644 index 000000000..a93e0b56a --- /dev/null +++ b/classo2_1_1monitoring_1_1VariantVisitorAdd.html @@ -0,0 +1,202 @@ + + + + + + +Monitoring: o2::monitoring::VariantVisitorAdd Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
o2::monitoring::VariantVisitorAdd Class Reference
+
+
+ +

Adds boost variants. + More...

+ +

#include <VariantVisitorAdd.h>

+
+Collaboration diagram for o2::monitoring::VariantVisitorAdd:
+
+
+
+
+ + + + + + + + + +

+Public Member Functions

+template<typename T , typename = typename std::enable_if<std::is_arithmetic<T>::value, T>::type>
std::variant< int, std::string, double, uint64_t > operator() (const T &a, const T &b) const
 Overloads operator() that sums numeric values.
 
template<typename T , typename U >
std::variant< int, std::string, double, uint64_t > operator() (const T &, const U &) const
 
+

Detailed Description

+

Adds boost variants.

+

Member Function Documentation

+ +
+
+
+template<typename T , typename U >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::variant<int, std::string, double, uint64_t> o2::monitoring::VariantVisitorAdd::operator() (const T & ,
const U &  
) const
+
+inline
+
+

If arguments have different type an exception is raised

Exceptions
+ + +
MonitoringException
+
+
+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/classo2_1_1monitoring_1_1VariantVisitorAdd.js b/classo2_1_1monitoring_1_1VariantVisitorAdd.js new file mode 100644 index 000000000..b264e3cb0 --- /dev/null +++ b/classo2_1_1monitoring_1_1VariantVisitorAdd.js @@ -0,0 +1,5 @@ +var classo2_1_1monitoring_1_1VariantVisitorAdd = +[ + [ "operator()", "classo2_1_1monitoring_1_1VariantVisitorAdd.html#a5ec9991b6db0e9c3763a33284dc132ad", null ], + [ "operator()", "classo2_1_1monitoring_1_1VariantVisitorAdd.html#aaee2df6b3a3cd51d634fdc40cdae70c2", null ] +]; \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1VariantVisitorAdd__coll__graph.dot b/classo2_1_1monitoring_1_1VariantVisitorAdd__coll__graph.dot new file mode 100644 index 000000000..f44937c6f --- /dev/null +++ b/classo2_1_1monitoring_1_1VariantVisitorAdd__coll__graph.dot @@ -0,0 +1,8 @@ +digraph "o2::monitoring::VariantVisitorAdd" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="{o2::monitoring::VariantVisitorAdd\n||+ operator()()\l+ operator()()\l}",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; +} diff --git a/classo2_1_1monitoring_1_1VariantVisitorAdd__coll__graph.map b/classo2_1_1monitoring_1_1VariantVisitorAdd__coll__graph.map new file mode 100644 index 000000000..3ddca9c84 --- /dev/null +++ b/classo2_1_1monitoring_1_1VariantVisitorAdd__coll__graph.map @@ -0,0 +1,2 @@ + + diff --git a/classo2_1_1monitoring_1_1VariantVisitorAdd__coll__graph.md5 b/classo2_1_1monitoring_1_1VariantVisitorAdd__coll__graph.md5 new file mode 100644 index 000000000..a49f1c7ee --- /dev/null +++ b/classo2_1_1monitoring_1_1VariantVisitorAdd__coll__graph.md5 @@ -0,0 +1 @@ +cf4c2853bb013850bb8750f80d50c539 \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1VariantVisitorAdd__coll__graph.svg b/classo2_1_1monitoring_1_1VariantVisitorAdd__coll__graph.svg new file mode 100644 index 000000000..36eaf2a73 --- /dev/null +++ b/classo2_1_1monitoring_1_1VariantVisitorAdd__coll__graph.svg @@ -0,0 +1,22 @@ + + + + + + +o2::monitoring::VariantVisitorAdd + +Node1 + +o2::monitoring::VariantVisitorAdd + + + ++ operator()() ++ operator()() + + + diff --git a/classo2_1_1monitoring_1_1VariantVisitorRate-members.html b/classo2_1_1monitoring_1_1VariantVisitorRate-members.html new file mode 100644 index 000000000..495caa1fc --- /dev/null +++ b/classo2_1_1monitoring_1_1VariantVisitorRate-members.html @@ -0,0 +1,133 @@ + + + + + + +Monitoring: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
o2::monitoring::VariantVisitorRate Member List
+
+
+ +

This is the complete list of members for o2::monitoring::VariantVisitorRate, including all inherited members.

+ + + + +
operator()(const T &a, const T &b) const o2::monitoring::VariantVisitorRateinline
operator()(const T &, const U &) const o2::monitoring::VariantVisitorRateinline
VariantVisitorRate(int count)o2::monitoring::VariantVisitorRateinline
+
+ + + + diff --git a/classo2_1_1monitoring_1_1VariantVisitorRate.html b/classo2_1_1monitoring_1_1VariantVisitorRate.html new file mode 100644 index 000000000..a123c8918 --- /dev/null +++ b/classo2_1_1monitoring_1_1VariantVisitorRate.html @@ -0,0 +1,270 @@ + + + + + + +Monitoring: o2::monitoring::VariantVisitorRate Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
o2::monitoring::VariantVisitorRate Class Reference
+
+
+ +

Subtracts boost variants in order to calculate rate. + More...

+ +

#include <VariantVisitorRate.h>

+
+Collaboration diagram for o2::monitoring::VariantVisitorRate:
+
+
+
+
+ + + + + + + + + + +

+Public Member Functions

 VariantVisitorRate (int count)
 
template<typename T , typename = typename std::enable_if<std::is_arithmetic<T>::value, T>::type>
double operator() (const T &a, const T &b) const
 
template<typename T , typename U >
double operator() (const T &, const U &) const
 
+

Detailed Description

+

Subtracts boost variants in order to calculate rate.

+

Constructor & Destructor Documentation

+ +
+
+ + + + + +
+ + + + + + + + +
o2::monitoring::VariantVisitorRate::VariantVisitorRate (int count)
+
+inline
+
+

Creates variant visitor functor

Parameters
+ + +
counttimestamp difference in milliseconds
+
+
+ +
+
+

Member Function Documentation

+ +
+
+
+template<typename T , typename = typename std::enable_if<std::is_arithmetic<T>::value, T>::type>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
double o2::monitoring::VariantVisitorRate::operator() (const T & a,
const T & b 
) const
+
+inline
+
+

Calculates rate only when two arguments of the same type are passed

Returns
calculated rate in Hz
+ +
+
+ +
+
+
+template<typename T , typename U >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
double o2::monitoring::VariantVisitorRate::operator() (const T & ,
const U &  
) const
+
+inline
+
+

If arguments have different type an exception is raised

Exceptions
+ + +
MonitoringException
+
+
+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/classo2_1_1monitoring_1_1VariantVisitorRate.js b/classo2_1_1monitoring_1_1VariantVisitorRate.js new file mode 100644 index 000000000..caede5fd2 --- /dev/null +++ b/classo2_1_1monitoring_1_1VariantVisitorRate.js @@ -0,0 +1,6 @@ +var classo2_1_1monitoring_1_1VariantVisitorRate = +[ + [ "VariantVisitorRate", "classo2_1_1monitoring_1_1VariantVisitorRate.html#aa336448595cb9579f7c17ea40a472002", null ], + [ "operator()", "classo2_1_1monitoring_1_1VariantVisitorRate.html#a761ef6eb471299a8c772bce9e7ab44bb", null ], + [ "operator()", "classo2_1_1monitoring_1_1VariantVisitorRate.html#a9a1258d6ceb8a8b1a5530b2ea534ed8b", null ] +]; \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1VariantVisitorRate__coll__graph.dot b/classo2_1_1monitoring_1_1VariantVisitorRate__coll__graph.dot new file mode 100644 index 000000000..00e4418a7 --- /dev/null +++ b/classo2_1_1monitoring_1_1VariantVisitorRate__coll__graph.dot @@ -0,0 +1,8 @@ +digraph "o2::monitoring::VariantVisitorRate" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="{o2::monitoring::VariantVisitorRate\n||+ VariantVisitorRate()\l+ operator()()\l+ operator()()\l}",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; +} diff --git a/classo2_1_1monitoring_1_1VariantVisitorRate__coll__graph.map b/classo2_1_1monitoring_1_1VariantVisitorRate__coll__graph.map new file mode 100644 index 000000000..4f94efb4f --- /dev/null +++ b/classo2_1_1monitoring_1_1VariantVisitorRate__coll__graph.map @@ -0,0 +1,2 @@ + + diff --git a/classo2_1_1monitoring_1_1VariantVisitorRate__coll__graph.md5 b/classo2_1_1monitoring_1_1VariantVisitorRate__coll__graph.md5 new file mode 100644 index 000000000..48e3d044e --- /dev/null +++ b/classo2_1_1monitoring_1_1VariantVisitorRate__coll__graph.md5 @@ -0,0 +1 @@ +ad13e53b982a56eede7945f8548b2543 \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1VariantVisitorRate__coll__graph.svg b/classo2_1_1monitoring_1_1VariantVisitorRate__coll__graph.svg new file mode 100644 index 000000000..a12df7168 --- /dev/null +++ b/classo2_1_1monitoring_1_1VariantVisitorRate__coll__graph.svg @@ -0,0 +1,23 @@ + + + + + + +o2::monitoring::VariantVisitorRate + +Node1 + +o2::monitoring::VariantVisitorRate + + + ++ VariantVisitorRate() ++ operator()() ++ operator()() + + + diff --git a/classo2_1_1monitoring_1_1backends_1_1ApMonBackend-members.html b/classo2_1_1monitoring_1_1backends_1_1ApMonBackend-members.html new file mode 100644 index 000000000..de6a52581 --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1ApMonBackend-members.html @@ -0,0 +1,139 @@ + + + + + + +Monitoring: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
o2::monitoring::backends::ApMonBackend Member List
+
+
+ +

This is the complete list of members for o2::monitoring::backends::ApMonBackend, including all inherited members.

+ + + + + + + + + + +
addGlobalTag(std::string_view name, std::string_view value) overrideo2::monitoring::backends::ApMonBackendvirtual
ApMonBackend(const std::string &path)o2::monitoring::backends::ApMonBackend
Backend()o2::monitoring::Backendinline
getVerbosity()o2::monitoring::Backendinline
send(std::vector< Metric > &&metrics) overrideo2::monitoring::backends::ApMonBackendvirtual
send(const Metric &metric) overrideo2::monitoring::backends::ApMonBackendvirtual
setVerbosisty(Verbosity level)o2::monitoring::Backendinline
~ApMonBackend()=defaulto2::monitoring::backends::ApMonBackend
~Backend()=defaulto2::monitoring::Backendvirtual
+
+ + + + diff --git a/classo2_1_1monitoring_1_1backends_1_1ApMonBackend.html b/classo2_1_1monitoring_1_1backends_1_1ApMonBackend.html new file mode 100644 index 000000000..d2e7d16fb --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1ApMonBackend.html @@ -0,0 +1,315 @@ + + + + + + +Monitoring: o2::monitoring::backends::ApMonBackend Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
o2::monitoring::backends::ApMonBackend Class Referencefinal
+
+
+ +

Backend that uses AppMon (MonALISA) + More...

+ +

#include <ApMonBackend.h>

+
+Inheritance diagram for o2::monitoring::backends::ApMonBackend:
+
+
+
+
+
+Collaboration diagram for o2::monitoring::backends::ApMonBackend:
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 ApMonBackend (const std::string &path)
 
~ApMonBackend ()=default
 Default destructor.
 
void send (std::vector< Metric > &&metrics) override
 
void send (const Metric &metric) override
 
void addGlobalTag (std::string_view name, std::string_view value) override
 
- Public Member Functions inherited from o2::monitoring::Backend
Backend ()
 Default constructor.
 
+virtual ~Backend ()=default
 Default destructor.
 
+void setVerbosisty (Verbosity level)
 Set verbosity level.
 
+Verbosity getVerbosity ()
 Get verbosity level.
 
+

Detailed Description

+

Backend that uses AppMon (MonALISA)

+

Uses ApMonBackend library to push metric to MonALISA Service. ApMonBackend accepts timestamps as integers, therefore a cast is needed.

+
Author
Adam Wegrzynek adam..nosp@m.wegr.nosp@m.zynek.nosp@m.@cer.nosp@m.n.ch
+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + +
o2::monitoring::backends::ApMonBackend::ApMonBackend (const std::string & path)
+
+

Constructs AppMon backend

Parameters
+ + +
pathfilepath to ApMonBackend configuration file
+
+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void o2::monitoring::backends::ApMonBackend::addGlobalTag (std::string_view name,
std::string_view value 
)
+
+overridevirtual
+
+

Extends entity value

Parameters
+ + + +
nametag name (unused)
valuetag value that is concatenated to entity string
+
+
+ +

Implements o2::monitoring::Backend.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void o2::monitoring::backends::ApMonBackend::send (std::vector< Metric > && metrics)
+
+overridevirtual
+
+

Sends multiple metrics not related to each other @param metrics vector of metrics

+ +

Implements o2::monitoring::Backend.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void o2::monitoring::backends::ApMonBackend::send (const Metricmetric)
+
+overridevirtual
+
+

Sends metric via MonALISA ApMonBackend's intances is type-aware therefore cast of metric value is needed

Parameters
+ + +
metricreference to metric object:
+
+
+ +

Implements o2::monitoring::Backend.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/classo2_1_1monitoring_1_1backends_1_1ApMonBackend.js b/classo2_1_1monitoring_1_1backends_1_1ApMonBackend.js new file mode 100644 index 000000000..aeb8793e0 --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1ApMonBackend.js @@ -0,0 +1,8 @@ +var classo2_1_1monitoring_1_1backends_1_1ApMonBackend = +[ + [ "ApMonBackend", "classo2_1_1monitoring_1_1backends_1_1ApMonBackend.html#afb3850ac45d82e127744b413df60955d", null ], + [ "~ApMonBackend", "classo2_1_1monitoring_1_1backends_1_1ApMonBackend.html#aa4fa3d5079b9fcbe69f0542cda51e7b2", null ], + [ "addGlobalTag", "classo2_1_1monitoring_1_1backends_1_1ApMonBackend.html#a601b1e1037804483972bd5c113b86159", null ], + [ "send", "classo2_1_1monitoring_1_1backends_1_1ApMonBackend.html#a0af4c4214f6487e58e897278a679aeb6", null ], + [ "send", "classo2_1_1monitoring_1_1backends_1_1ApMonBackend.html#a218fd93ee7cb6e2f8d4aebfd29666b94", null ] +]; \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1backends_1_1ApMonBackend__coll__graph.dot b/classo2_1_1monitoring_1_1backends_1_1ApMonBackend__coll__graph.dot new file mode 100644 index 000000000..a9f8d7699 --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1ApMonBackend__coll__graph.dot @@ -0,0 +1,10 @@ +digraph "o2::monitoring::backends::ApMonBackend" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="{o2::monitoring::backends\l::ApMonBackend\n||+ ApMonBackend()\l+ ~ApMonBackend()\l+ send()\l+ send()\l+ addGlobalTag()\l}",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; + Node2 [label="{o2::monitoring::Backend\n||+ Backend()\l+ ~Backend()\l+ setVerbosisty()\l+ getVerbosity()\l+ send()\l+ send()\l+ addGlobalTag()\l}",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1Backend.html",tooltip="Backend pure virtual interface. "]; +} diff --git a/classo2_1_1monitoring_1_1backends_1_1ApMonBackend__coll__graph.map b/classo2_1_1monitoring_1_1backends_1_1ApMonBackend__coll__graph.map new file mode 100644 index 000000000..9a4f0a597 --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1ApMonBackend__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/classo2_1_1monitoring_1_1backends_1_1ApMonBackend__coll__graph.md5 b/classo2_1_1monitoring_1_1backends_1_1ApMonBackend__coll__graph.md5 new file mode 100644 index 000000000..f65b9a2d0 --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1ApMonBackend__coll__graph.md5 @@ -0,0 +1 @@ +214e95da955984f9e95b11b125fd4b55 \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1backends_1_1ApMonBackend__coll__graph.svg b/classo2_1_1monitoring_1_1backends_1_1ApMonBackend__coll__graph.svg new file mode 100644 index 000000000..56f8d8d45 --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1ApMonBackend__coll__graph.svg @@ -0,0 +1,49 @@ + + + + + + +o2::monitoring::backends::ApMonBackend + +Node1 + +o2::monitoring::backends +::ApMonBackend + + + ++ ApMonBackend() ++ ~ApMonBackend() ++ send() ++ send() ++ addGlobalTag() + + +Node2 + + +o2::monitoring::Backend + + + ++ Backend() ++ ~Backend() ++ setVerbosisty() ++ getVerbosity() ++ send() ++ send() ++ addGlobalTag() + + + + +Node2->Node1 + + + + + diff --git a/classo2_1_1monitoring_1_1backends_1_1ApMonBackend__inherit__graph.dot b/classo2_1_1monitoring_1_1backends_1_1ApMonBackend__inherit__graph.dot new file mode 100644 index 000000000..a9f8d7699 --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1ApMonBackend__inherit__graph.dot @@ -0,0 +1,10 @@ +digraph "o2::monitoring::backends::ApMonBackend" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="{o2::monitoring::backends\l::ApMonBackend\n||+ ApMonBackend()\l+ ~ApMonBackend()\l+ send()\l+ send()\l+ addGlobalTag()\l}",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; + Node2 [label="{o2::monitoring::Backend\n||+ Backend()\l+ ~Backend()\l+ setVerbosisty()\l+ getVerbosity()\l+ send()\l+ send()\l+ addGlobalTag()\l}",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1Backend.html",tooltip="Backend pure virtual interface. "]; +} diff --git a/classo2_1_1monitoring_1_1backends_1_1ApMonBackend__inherit__graph.map b/classo2_1_1monitoring_1_1backends_1_1ApMonBackend__inherit__graph.map new file mode 100644 index 000000000..9a4f0a597 --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1ApMonBackend__inherit__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/classo2_1_1monitoring_1_1backends_1_1ApMonBackend__inherit__graph.md5 b/classo2_1_1monitoring_1_1backends_1_1ApMonBackend__inherit__graph.md5 new file mode 100644 index 000000000..f65b9a2d0 --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1ApMonBackend__inherit__graph.md5 @@ -0,0 +1 @@ +214e95da955984f9e95b11b125fd4b55 \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1backends_1_1ApMonBackend__inherit__graph.svg b/classo2_1_1monitoring_1_1backends_1_1ApMonBackend__inherit__graph.svg new file mode 100644 index 000000000..56f8d8d45 --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1ApMonBackend__inherit__graph.svg @@ -0,0 +1,49 @@ + + + + + + +o2::monitoring::backends::ApMonBackend + +Node1 + +o2::monitoring::backends +::ApMonBackend + + + ++ ApMonBackend() ++ ~ApMonBackend() ++ send() ++ send() ++ addGlobalTag() + + +Node2 + + +o2::monitoring::Backend + + + ++ Backend() ++ ~Backend() ++ setVerbosisty() ++ getVerbosity() ++ send() ++ send() ++ addGlobalTag() + + + + +Node2->Node1 + + + + + diff --git a/classo2_1_1monitoring_1_1backends_1_1InfluxDB-members.html b/classo2_1_1monitoring_1_1backends_1_1InfluxDB-members.html new file mode 100644 index 000000000..c4fc1f0c3 --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1InfluxDB-members.html @@ -0,0 +1,141 @@ + + + + + + +Monitoring: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
o2::monitoring::backends::InfluxDB Member List
+
+
+ +

This is the complete list of members for o2::monitoring::backends::InfluxDB, including all inherited members.

+ + + + + + + + + + + + +
addGlobalTag(std::string_view name, std::string_view value) overrideo2::monitoring::backends::InfluxDBvirtual
Backend()o2::monitoring::Backendinline
convertTimestamp(const std::chrono::time_point< std::chrono::system_clock > &timestamp)o2::monitoring::backends::InfluxDBinline
getVerbosity()o2::monitoring::Backendinline
InfluxDB(std::unique_ptr< transports::TransportInterface > transport)o2::monitoring::backends::InfluxDB
send(const Metric &metric) overrideo2::monitoring::backends::InfluxDBvirtual
send(std::vector< Metric > &&metrics) overrideo2::monitoring::backends::InfluxDBvirtual
setVerbosisty(Verbosity level)o2::monitoring::Backendinline
toInfluxLineProtocol(const Metric &metric)o2::monitoring::backends::InfluxDB
~Backend()=defaulto2::monitoring::Backendvirtual
~InfluxDB()=defaulto2::monitoring::backends::InfluxDB
+
+ + + + diff --git a/classo2_1_1monitoring_1_1backends_1_1InfluxDB.html b/classo2_1_1monitoring_1_1backends_1_1InfluxDB.html new file mode 100644 index 000000000..792b0e68c --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1InfluxDB.html @@ -0,0 +1,371 @@ + + + + + + +Monitoring: o2::monitoring::backends::InfluxDB Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
o2::monitoring::backends::InfluxDB Class Referencefinal
+
+
+ +

Backend that sends metrics to InfluxDB time-series databse. + More...

+ +

#include <InfluxDB.h>

+
+Inheritance diagram for o2::monitoring::backends::InfluxDB:
+
+
+
+
+
+Collaboration diagram for o2::monitoring::backends::InfluxDB:
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 InfluxDB (std::unique_ptr< transports::TransportInterface > transport)
 
~InfluxDB ()=default
 Default destructor.
 
unsigned long convertTimestamp (const std::chrono::time_point< std::chrono::system_clock > &timestamp)
 
void send (const Metric &metric) override
 
void send (std::vector< Metric > &&metrics) override
 
void addGlobalTag (std::string_view name, std::string_view value) override
 
std::string toInfluxLineProtocol (const Metric &metric)
 
- Public Member Functions inherited from o2::monitoring::Backend
Backend ()
 Default constructor.
 
+virtual ~Backend ()=default
 Default destructor.
 
+void setVerbosisty (Verbosity level)
 Set verbosity level.
 
+Verbosity getVerbosity ()
 Get verbosity level.
 
+

Detailed Description

+

Backend that sends metrics to InfluxDB time-series databse.

+

Metrics are converted into Influx Line protocol and then sent via one of available transports

+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + +
o2::monitoring::backends::InfluxDB::InfluxDB (std::unique_ptr< transports::TransportInterfacetransport)
+
+

Constuctor

Parameters
+ + +
transportAny available transport (udp, unix, kafka)
+
+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void o2::monitoring::backends::InfluxDB::addGlobalTag (std::string_view name,
std::string_view value 
)
+
+overridevirtual
+
+

Adds tag

Parameters
+ + + +
nametag name
valuetag value
+
+
+ +

Implements o2::monitoring::Backend.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
unsigned long o2::monitoring::backends::InfluxDB::convertTimestamp (const std::chrono::time_point< std::chrono::system_clock > & timestamp)
+
+inline
+
+

Convert timestamp to unsigned long as required by InfluxDB

Parameters
+ + +
timestampchrono time_point timestamp
+
+
+
Returns
timestamp in nanoseconds
+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void o2::monitoring::backends::InfluxDB::send (const Metricmetric)
+
+overridevirtual
+
+

Sends metric to InfluxDB instance via one transport

Parameters
+ + +
metricreference to metric object
+
+
+ +

Implements o2::monitoring::Backend.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void o2::monitoring::backends::InfluxDB::send (std::vector< Metric > && metrics)
+
+overridevirtual
+
+

Sends multiple metrics not related to each other @param metrics vector of metrics

+ +

Implements o2::monitoring::Backend.

+ +
+
+ +
+
+ + + + + + + + +
std::string o2::monitoring::backends::InfluxDB::toInfluxLineProtocol (const Metricmetric)
+
+

Converts metric to Influx Line Protocol format

Parameters
+ + +
metric
+
+
+ +
+
+
The documentation for this class was generated from the following files:
    +
  • /home/travis/build/AliceO2Group/Monitoring/src/Backends/InfluxDB.h
  • +
  • /home/travis/build/AliceO2Group/Monitoring/src/Backends/InfluxDB.cxx
  • +
+
+
+ + + + diff --git a/classo2_1_1monitoring_1_1backends_1_1InfluxDB.js b/classo2_1_1monitoring_1_1backends_1_1InfluxDB.js new file mode 100644 index 000000000..3173db256 --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1InfluxDB.js @@ -0,0 +1,10 @@ +var classo2_1_1monitoring_1_1backends_1_1InfluxDB = +[ + [ "InfluxDB", "classo2_1_1monitoring_1_1backends_1_1InfluxDB.html#a9cabd71c97bd8cfac2507eeaa0924d2a", null ], + [ "~InfluxDB", "classo2_1_1monitoring_1_1backends_1_1InfluxDB.html#a640c23ea2c605c795ceb02cd04163e1c", null ], + [ "addGlobalTag", "classo2_1_1monitoring_1_1backends_1_1InfluxDB.html#aa2291ccbf0d0c65d8f498de3091ead97", null ], + [ "convertTimestamp", "classo2_1_1monitoring_1_1backends_1_1InfluxDB.html#aec50b283b62063bf50b4e33f89ecfbd9", null ], + [ "send", "classo2_1_1monitoring_1_1backends_1_1InfluxDB.html#a9432f9b05962004d66673e56703b9586", null ], + [ "send", "classo2_1_1monitoring_1_1backends_1_1InfluxDB.html#ae2554d7e3467c666be33615a20ad27d4", null ], + [ "toInfluxLineProtocol", "classo2_1_1monitoring_1_1backends_1_1InfluxDB.html#aa074417f8c1d876548bf62c4220c0fea", null ] +]; \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1backends_1_1InfluxDB__coll__graph.dot b/classo2_1_1monitoring_1_1backends_1_1InfluxDB__coll__graph.dot new file mode 100644 index 000000000..0d9c7665c --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1InfluxDB__coll__graph.dot @@ -0,0 +1,10 @@ +digraph "o2::monitoring::backends::InfluxDB" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="{o2::monitoring::backends\l::InfluxDB\n||+ InfluxDB()\l+ ~InfluxDB()\l+ convertTimestamp()\l+ send()\l+ send()\l+ addGlobalTag()\l+ toInfluxLineProtocol()\l}",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; + Node2 [label="{o2::monitoring::Backend\n||+ Backend()\l+ ~Backend()\l+ setVerbosisty()\l+ getVerbosity()\l+ send()\l+ send()\l+ addGlobalTag()\l}",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1Backend.html",tooltip="Backend pure virtual interface. "]; +} diff --git a/classo2_1_1monitoring_1_1backends_1_1InfluxDB__coll__graph.map b/classo2_1_1monitoring_1_1backends_1_1InfluxDB__coll__graph.map new file mode 100644 index 000000000..d4d9c3b88 --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1InfluxDB__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/classo2_1_1monitoring_1_1backends_1_1InfluxDB__coll__graph.md5 b/classo2_1_1monitoring_1_1backends_1_1InfluxDB__coll__graph.md5 new file mode 100644 index 000000000..8d0073df1 --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1InfluxDB__coll__graph.md5 @@ -0,0 +1 @@ +421a98914db69bdba69c304406d1bec1 \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1backends_1_1InfluxDB__coll__graph.svg b/classo2_1_1monitoring_1_1backends_1_1InfluxDB__coll__graph.svg new file mode 100644 index 000000000..2b84ef9c3 --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1InfluxDB__coll__graph.svg @@ -0,0 +1,51 @@ + + + + + + +o2::monitoring::backends::InfluxDB + +Node1 + +o2::monitoring::backends +::InfluxDB + + + ++ InfluxDB() ++ ~InfluxDB() ++ convertTimestamp() ++ send() ++ send() ++ addGlobalTag() ++ toInfluxLineProtocol() + + +Node2 + + +o2::monitoring::Backend + + + ++ Backend() ++ ~Backend() ++ setVerbosisty() ++ getVerbosity() ++ send() ++ send() ++ addGlobalTag() + + + + +Node2->Node1 + + + + + diff --git a/classo2_1_1monitoring_1_1backends_1_1InfluxDB__inherit__graph.dot b/classo2_1_1monitoring_1_1backends_1_1InfluxDB__inherit__graph.dot new file mode 100644 index 000000000..0d9c7665c --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1InfluxDB__inherit__graph.dot @@ -0,0 +1,10 @@ +digraph "o2::monitoring::backends::InfluxDB" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="{o2::monitoring::backends\l::InfluxDB\n||+ InfluxDB()\l+ ~InfluxDB()\l+ convertTimestamp()\l+ send()\l+ send()\l+ addGlobalTag()\l+ toInfluxLineProtocol()\l}",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; + Node2 [label="{o2::monitoring::Backend\n||+ Backend()\l+ ~Backend()\l+ setVerbosisty()\l+ getVerbosity()\l+ send()\l+ send()\l+ addGlobalTag()\l}",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1Backend.html",tooltip="Backend pure virtual interface. "]; +} diff --git a/classo2_1_1monitoring_1_1backends_1_1InfluxDB__inherit__graph.map b/classo2_1_1monitoring_1_1backends_1_1InfluxDB__inherit__graph.map new file mode 100644 index 000000000..d4d9c3b88 --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1InfluxDB__inherit__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/classo2_1_1monitoring_1_1backends_1_1InfluxDB__inherit__graph.md5 b/classo2_1_1monitoring_1_1backends_1_1InfluxDB__inherit__graph.md5 new file mode 100644 index 000000000..8d0073df1 --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1InfluxDB__inherit__graph.md5 @@ -0,0 +1 @@ +421a98914db69bdba69c304406d1bec1 \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1backends_1_1InfluxDB__inherit__graph.svg b/classo2_1_1monitoring_1_1backends_1_1InfluxDB__inherit__graph.svg new file mode 100644 index 000000000..2b84ef9c3 --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1InfluxDB__inherit__graph.svg @@ -0,0 +1,51 @@ + + + + + + +o2::monitoring::backends::InfluxDB + +Node1 + +o2::monitoring::backends +::InfluxDB + + + ++ InfluxDB() ++ ~InfluxDB() ++ convertTimestamp() ++ send() ++ send() ++ addGlobalTag() ++ toInfluxLineProtocol() + + +Node2 + + +o2::monitoring::Backend + + + ++ Backend() ++ ~Backend() ++ setVerbosisty() ++ getVerbosity() ++ send() ++ send() ++ addGlobalTag() + + + + +Node2->Node1 + + + + + diff --git a/classo2_1_1monitoring_1_1backends_1_1Noop-members.html b/classo2_1_1monitoring_1_1backends_1_1Noop-members.html new file mode 100644 index 000000000..d656aa0eb --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1Noop-members.html @@ -0,0 +1,139 @@ + + + + + + +Monitoring: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
o2::monitoring::backends::Noop Member List
+
+
+ +

This is the complete list of members for o2::monitoring::backends::Noop, including all inherited members.

+ + + + + + + + + + +
addGlobalTag(std::string_view, std::string_view) finalo2::monitoring::backends::Noopinlinevirtual
Backend()o2::monitoring::Backendinline
getVerbosity()o2::monitoring::Backendinline
Noop()=defaulto2::monitoring::backends::Noop
send(std::vector< Metric > &&) finalo2::monitoring::backends::Noopinlinevirtual
send(const Metric &) finalo2::monitoring::backends::Noopinlinevirtual
setVerbosisty(Verbosity level)o2::monitoring::Backendinline
~Backend()=defaulto2::monitoring::Backendvirtual
~Noop()=defaulto2::monitoring::backends::Noop
+
+ + + + diff --git a/classo2_1_1monitoring_1_1backends_1_1Noop.html b/classo2_1_1monitoring_1_1backends_1_1Noop.html new file mode 100644 index 000000000..ac8f06b12 --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1Noop.html @@ -0,0 +1,267 @@ + + + + + + +Monitoring: o2::monitoring::backends::Noop Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
o2::monitoring::backends::Noop Class Referencefinal
+
+
+ +

No-op backend. + More...

+ +

#include <Noop.h>

+
+Inheritance diagram for o2::monitoring::backends::Noop:
+
+
+
+
+
+Collaboration diagram for o2::monitoring::backends::Noop:
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

Noop ()=default
 Constructs backend.
 
~Noop ()=default
 Default destructor.
 
+void send (std::vector< Metric > &&) final
 @param metrics vector of metrics
 
void send (const Metric &) final
 
void addGlobalTag (std::string_view, std::string_view) final
 
- Public Member Functions inherited from o2::monitoring::Backend
Backend ()
 Default constructor.
 
+virtual ~Backend ()=default
 Default destructor.
 
+void setVerbosisty (Verbosity level)
 Set verbosity level.
 
+Verbosity getVerbosity ()
 Get verbosity level.
 
+

Detailed Description

+

No-op backend.

+
Author
Adam Wegrzynek adam..nosp@m.wegr.nosp@m.zynek.nosp@m.@cer.nosp@m.n.ch
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void o2::monitoring::backends::Noop::addGlobalTag (std::string_view ,
std::string_view  
)
+
+inlinefinalvirtual
+
+
Parameters
+ + + +
nametag name
valuetag value that is concatenated to entity string
+
+
+ +

Implements o2::monitoring::Backend.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void o2::monitoring::backends::Noop::send (const Metric)
+
+inlinefinalvirtual
+
+
Parameters
+ + +
metricreference to metric object:
+
+
+ +

Implements o2::monitoring::Backend.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/travis/build/AliceO2Group/Monitoring/src/Backends/Noop.h
  • +
+
+
+ + + + diff --git a/classo2_1_1monitoring_1_1backends_1_1Noop.js b/classo2_1_1monitoring_1_1backends_1_1Noop.js new file mode 100644 index 000000000..6a533b4c0 --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1Noop.js @@ -0,0 +1,8 @@ +var classo2_1_1monitoring_1_1backends_1_1Noop = +[ + [ "Noop", "classo2_1_1monitoring_1_1backends_1_1Noop.html#aab063b0e0bdf16ee53a972ed7f5a3516", null ], + [ "~Noop", "classo2_1_1monitoring_1_1backends_1_1Noop.html#a33317243cf50630fa0e04b41e101cf0c", null ], + [ "addGlobalTag", "classo2_1_1monitoring_1_1backends_1_1Noop.html#a39b8fd704f0ec24ac4c94dd8ba7ea238", null ], + [ "send", "classo2_1_1monitoring_1_1backends_1_1Noop.html#ab8bb7e9d907132f287867b966f204ba6", null ], + [ "send", "classo2_1_1monitoring_1_1backends_1_1Noop.html#ac8d52cee6f868bff5c028f4360903699", null ] +]; \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1backends_1_1Noop__coll__graph.dot b/classo2_1_1monitoring_1_1backends_1_1Noop__coll__graph.dot new file mode 100644 index 000000000..2025f29b4 --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1Noop__coll__graph.dot @@ -0,0 +1,10 @@ +digraph "o2::monitoring::backends::Noop" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="{o2::monitoring::backends\l::Noop\n||+ Noop()\l+ ~Noop()\l+ send()\l+ send()\l+ addGlobalTag()\l}",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; + Node2 [label="{o2::monitoring::Backend\n||+ Backend()\l+ ~Backend()\l+ setVerbosisty()\l+ getVerbosity()\l+ send()\l+ send()\l+ addGlobalTag()\l}",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1Backend.html",tooltip="Backend pure virtual interface. "]; +} diff --git a/classo2_1_1monitoring_1_1backends_1_1Noop__coll__graph.map b/classo2_1_1monitoring_1_1backends_1_1Noop__coll__graph.map new file mode 100644 index 000000000..8cf6aa0d9 --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1Noop__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/classo2_1_1monitoring_1_1backends_1_1Noop__coll__graph.md5 b/classo2_1_1monitoring_1_1backends_1_1Noop__coll__graph.md5 new file mode 100644 index 000000000..e9fa396b0 --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1Noop__coll__graph.md5 @@ -0,0 +1 @@ +fadebccd3f52212da2bce3f4308aa3a2 \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1backends_1_1Noop__coll__graph.svg b/classo2_1_1monitoring_1_1backends_1_1Noop__coll__graph.svg new file mode 100644 index 000000000..2c063c645 --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1Noop__coll__graph.svg @@ -0,0 +1,49 @@ + + + + + + +o2::monitoring::backends::Noop + +Node1 + +o2::monitoring::backends +::Noop + + + ++ Noop() ++ ~Noop() ++ send() ++ send() ++ addGlobalTag() + + +Node2 + + +o2::monitoring::Backend + + + ++ Backend() ++ ~Backend() ++ setVerbosisty() ++ getVerbosity() ++ send() ++ send() ++ addGlobalTag() + + + + +Node2->Node1 + + + + + diff --git a/classo2_1_1monitoring_1_1backends_1_1Noop__inherit__graph.dot b/classo2_1_1monitoring_1_1backends_1_1Noop__inherit__graph.dot new file mode 100644 index 000000000..2025f29b4 --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1Noop__inherit__graph.dot @@ -0,0 +1,10 @@ +digraph "o2::monitoring::backends::Noop" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="{o2::monitoring::backends\l::Noop\n||+ Noop()\l+ ~Noop()\l+ send()\l+ send()\l+ addGlobalTag()\l}",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; + Node2 [label="{o2::monitoring::Backend\n||+ Backend()\l+ ~Backend()\l+ setVerbosisty()\l+ getVerbosity()\l+ send()\l+ send()\l+ addGlobalTag()\l}",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1Backend.html",tooltip="Backend pure virtual interface. "]; +} diff --git a/classo2_1_1monitoring_1_1backends_1_1Noop__inherit__graph.map b/classo2_1_1monitoring_1_1backends_1_1Noop__inherit__graph.map new file mode 100644 index 000000000..8cf6aa0d9 --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1Noop__inherit__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/classo2_1_1monitoring_1_1backends_1_1Noop__inherit__graph.md5 b/classo2_1_1monitoring_1_1backends_1_1Noop__inherit__graph.md5 new file mode 100644 index 000000000..e9fa396b0 --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1Noop__inherit__graph.md5 @@ -0,0 +1 @@ +fadebccd3f52212da2bce3f4308aa3a2 \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1backends_1_1Noop__inherit__graph.svg b/classo2_1_1monitoring_1_1backends_1_1Noop__inherit__graph.svg new file mode 100644 index 000000000..2c063c645 --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1Noop__inherit__graph.svg @@ -0,0 +1,49 @@ + + + + + + +o2::monitoring::backends::Noop + +Node1 + +o2::monitoring::backends +::Noop + + + ++ Noop() ++ ~Noop() ++ send() ++ send() ++ addGlobalTag() + + +Node2 + + +o2::monitoring::Backend + + + ++ Backend() ++ ~Backend() ++ setVerbosisty() ++ getVerbosity() ++ send() ++ send() ++ addGlobalTag() + + + + +Node2->Node1 + + + + + diff --git a/classo2_1_1monitoring_1_1backends_1_1StdOut-members.html b/classo2_1_1monitoring_1_1backends_1_1StdOut-members.html new file mode 100644 index 000000000..d2a0e5480 --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1StdOut-members.html @@ -0,0 +1,139 @@ + + + + + + +Monitoring: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
o2::monitoring::backends::StdOut Member List
+
+
+ +

This is the complete list of members for o2::monitoring::backends::StdOut, including all inherited members.

+ + + + + + + + + + +
addGlobalTag(std::string_view name, std::string_view value) overrideo2::monitoring::backends::StdOutvirtual
Backend()o2::monitoring::Backendinline
getVerbosity()o2::monitoring::Backendinline
send(const Metric &metric) overrideo2::monitoring::backends::StdOutvirtual
send(std::vector< Metric > &&metrics) overrideo2::monitoring::backends::StdOutvirtual
setVerbosisty(Verbosity level)o2::monitoring::Backendinline
StdOut(const std::string &prefix="METRIC")o2::monitoring::backends::StdOut
~Backend()=defaulto2::monitoring::Backendvirtual
~StdOut()=defaulto2::monitoring::backends::StdOut
+
+ + + + diff --git a/classo2_1_1monitoring_1_1backends_1_1StdOut.html b/classo2_1_1monitoring_1_1backends_1_1StdOut.html new file mode 100644 index 000000000..c9e284ea4 --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1StdOut.html @@ -0,0 +1,292 @@ + + + + + + +Monitoring: o2::monitoring::backends::StdOut Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
o2::monitoring::backends::StdOut Class Referencefinal
+
+
+ +

Prints metrics to standard output via std::cout. + More...

+ +

#include <StdOut.h>

+
+Inheritance diagram for o2::monitoring::backends::StdOut:
+
+
+
+
+
+Collaboration diagram for o2::monitoring::backends::StdOut:
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

StdOut (const std::string &prefix="METRIC")
 Default constructor.
 
~StdOut ()=default
 Default destructor.
 
void send (const Metric &metric) override
 
void send (std::vector< Metric > &&metrics) override
 
void addGlobalTag (std::string_view name, std::string_view value) override
 
- Public Member Functions inherited from o2::monitoring::Backend
Backend ()
 Default constructor.
 
+virtual ~Backend ()=default
 Default destructor.
 
+void setVerbosisty (Verbosity level)
 Set verbosity level.
 
+Verbosity getVerbosity ()
 Get verbosity level.
 
+

Detailed Description

+

Prints metrics to standard output via std::cout.

+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void o2::monitoring::backends::StdOut::addGlobalTag (std::string_view name,
std::string_view value 
)
+
+overridevirtual
+
+

Adds tag

Parameters
+ + + +
nametag name
valuetag value
+
+
+ +

Implements o2::monitoring::Backend.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void o2::monitoring::backends::StdOut::send (const Metricmetric)
+
+overridevirtual
+
+

Prints metric

Parameters
+ + +
metricreference to metric object
+
+
+ +

Implements o2::monitoring::Backend.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + +
void o2::monitoring::backends::StdOut::send (std::vector< Metric > && metrics)
+
+overridevirtual
+
+

Prints vector of metrics @param metrics vector of metrics

+ +

Implements o2::monitoring::Backend.

+ +
+
+
The documentation for this class was generated from the following files:
    +
  • /home/travis/build/AliceO2Group/Monitoring/src/Backends/StdOut.h
  • +
  • /home/travis/build/AliceO2Group/Monitoring/src/Backends/StdOut.cxx
  • +
+
+
+ + + + diff --git a/classo2_1_1monitoring_1_1backends_1_1StdOut.js b/classo2_1_1monitoring_1_1backends_1_1StdOut.js new file mode 100644 index 000000000..9c5bc54ba --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1StdOut.js @@ -0,0 +1,8 @@ +var classo2_1_1monitoring_1_1backends_1_1StdOut = +[ + [ "StdOut", "classo2_1_1monitoring_1_1backends_1_1StdOut.html#ab520c63cbcd17b43546eb2537e1bab4d", null ], + [ "~StdOut", "classo2_1_1monitoring_1_1backends_1_1StdOut.html#abc710b1a9958e71865f95235e031e5fd", null ], + [ "addGlobalTag", "classo2_1_1monitoring_1_1backends_1_1StdOut.html#a0ebbd8e576966bb26ab08d045ea1c91f", null ], + [ "send", "classo2_1_1monitoring_1_1backends_1_1StdOut.html#ac25e9b11cadb4019eab635adb9aef9e3", null ], + [ "send", "classo2_1_1monitoring_1_1backends_1_1StdOut.html#a33714a6bf6b379b9e619ff59d93e70fe", null ] +]; \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1backends_1_1StdOut__coll__graph.dot b/classo2_1_1monitoring_1_1backends_1_1StdOut__coll__graph.dot new file mode 100644 index 000000000..b19439597 --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1StdOut__coll__graph.dot @@ -0,0 +1,10 @@ +digraph "o2::monitoring::backends::StdOut" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="{o2::monitoring::backends\l::StdOut\n||+ StdOut()\l+ ~StdOut()\l+ send()\l+ send()\l+ addGlobalTag()\l}",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; + Node2 [label="{o2::monitoring::Backend\n||+ Backend()\l+ ~Backend()\l+ setVerbosisty()\l+ getVerbosity()\l+ send()\l+ send()\l+ addGlobalTag()\l}",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1Backend.html",tooltip="Backend pure virtual interface. "]; +} diff --git a/classo2_1_1monitoring_1_1backends_1_1StdOut__coll__graph.map b/classo2_1_1monitoring_1_1backends_1_1StdOut__coll__graph.map new file mode 100644 index 000000000..52796d325 --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1StdOut__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/classo2_1_1monitoring_1_1backends_1_1StdOut__coll__graph.md5 b/classo2_1_1monitoring_1_1backends_1_1StdOut__coll__graph.md5 new file mode 100644 index 000000000..bfb431550 --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1StdOut__coll__graph.md5 @@ -0,0 +1 @@ +859fdd2e4048a655a4a18664861f5d1c \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1backends_1_1StdOut__coll__graph.svg b/classo2_1_1monitoring_1_1backends_1_1StdOut__coll__graph.svg new file mode 100644 index 000000000..4b809b334 --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1StdOut__coll__graph.svg @@ -0,0 +1,49 @@ + + + + + + +o2::monitoring::backends::StdOut + +Node1 + +o2::monitoring::backends +::StdOut + + + ++ StdOut() ++ ~StdOut() ++ send() ++ send() ++ addGlobalTag() + + +Node2 + + +o2::monitoring::Backend + + + ++ Backend() ++ ~Backend() ++ setVerbosisty() ++ getVerbosity() ++ send() ++ send() ++ addGlobalTag() + + + + +Node2->Node1 + + + + + diff --git a/classo2_1_1monitoring_1_1backends_1_1StdOut__inherit__graph.dot b/classo2_1_1monitoring_1_1backends_1_1StdOut__inherit__graph.dot new file mode 100644 index 000000000..b19439597 --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1StdOut__inherit__graph.dot @@ -0,0 +1,10 @@ +digraph "o2::monitoring::backends::StdOut" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="{o2::monitoring::backends\l::StdOut\n||+ StdOut()\l+ ~StdOut()\l+ send()\l+ send()\l+ addGlobalTag()\l}",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; + Node2 [label="{o2::monitoring::Backend\n||+ Backend()\l+ ~Backend()\l+ setVerbosisty()\l+ getVerbosity()\l+ send()\l+ send()\l+ addGlobalTag()\l}",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1Backend.html",tooltip="Backend pure virtual interface. "]; +} diff --git a/classo2_1_1monitoring_1_1backends_1_1StdOut__inherit__graph.map b/classo2_1_1monitoring_1_1backends_1_1StdOut__inherit__graph.map new file mode 100644 index 000000000..52796d325 --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1StdOut__inherit__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/classo2_1_1monitoring_1_1backends_1_1StdOut__inherit__graph.md5 b/classo2_1_1monitoring_1_1backends_1_1StdOut__inherit__graph.md5 new file mode 100644 index 000000000..bfb431550 --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1StdOut__inherit__graph.md5 @@ -0,0 +1 @@ +859fdd2e4048a655a4a18664861f5d1c \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1backends_1_1StdOut__inherit__graph.svg b/classo2_1_1monitoring_1_1backends_1_1StdOut__inherit__graph.svg new file mode 100644 index 000000000..4b809b334 --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1StdOut__inherit__graph.svg @@ -0,0 +1,49 @@ + + + + + + +o2::monitoring::backends::StdOut + +Node1 + +o2::monitoring::backends +::StdOut + + + ++ StdOut() ++ ~StdOut() ++ send() ++ send() ++ addGlobalTag() + + +Node2 + + +o2::monitoring::Backend + + + ++ Backend() ++ ~Backend() ++ setVerbosisty() ++ getVerbosity() ++ send() ++ send() ++ addGlobalTag() + + + + +Node2->Node1 + + + + + diff --git a/classo2_1_1monitoring_1_1backends_1_1Ts.html b/classo2_1_1monitoring_1_1backends_1_1Ts.html new file mode 100644 index 000000000..2a0a53648 --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1Ts.html @@ -0,0 +1,143 @@ + + + + + + +Monitoring: Ts Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Ts Class Reference
+
+
+
+Inheritance diagram for Ts:
+
+
+
+
+
+Collaboration diagram for Ts:
+
+
+
+
+
The documentation for this class was generated from the following file:
    +
  • /home/travis/build/AliceO2Group/Monitoring/src/Backends/StdOut.cxx
  • +
+
+
+ + + + diff --git a/classo2_1_1monitoring_1_1backends_1_1Ts__coll__graph.dot b/classo2_1_1monitoring_1_1backends_1_1Ts__coll__graph.dot new file mode 100644 index 000000000..9ce4dfb2b --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1Ts__coll__graph.dot @@ -0,0 +1,8 @@ +digraph "Ts" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="{Ts\n||}",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; +} diff --git a/classo2_1_1monitoring_1_1backends_1_1Ts__coll__graph.map b/classo2_1_1monitoring_1_1backends_1_1Ts__coll__graph.map new file mode 100644 index 000000000..fc5168828 --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1Ts__coll__graph.map @@ -0,0 +1,2 @@ + + diff --git a/classo2_1_1monitoring_1_1backends_1_1Ts__coll__graph.md5 b/classo2_1_1monitoring_1_1backends_1_1Ts__coll__graph.md5 new file mode 100644 index 000000000..3a16b0132 --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1Ts__coll__graph.md5 @@ -0,0 +1 @@ +4f965223dbf418485d93930ae5530d9f \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1backends_1_1Ts__coll__graph.svg b/classo2_1_1monitoring_1_1backends_1_1Ts__coll__graph.svg new file mode 100644 index 000000000..5bd924b5d --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1Ts__coll__graph.svg @@ -0,0 +1,21 @@ + + + + + + +Ts + +Node1 + +Ts + + + + + + + diff --git a/classo2_1_1monitoring_1_1backends_1_1Ts__inherit__graph.dot b/classo2_1_1monitoring_1_1backends_1_1Ts__inherit__graph.dot new file mode 100644 index 000000000..2dcb43dde --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1Ts__inherit__graph.dot @@ -0,0 +1,14 @@ +digraph "Ts" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="{Ts\n||}",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; + Node2 [label="{o2::monitoring::backends\l::overloaded\< Ts \>\n||}",height=0.2,width=0.4,color="black",URL="$structo2_1_1monitoring_1_1backends_1_1overloaded.html"]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; + Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; + Node3 [label="{overloaded\< Ts \>\n||}",height=0.2,width=0.4,color="black",URL="$structoverloaded.html"]; +} diff --git a/classo2_1_1monitoring_1_1backends_1_1Ts__inherit__graph.map b/classo2_1_1monitoring_1_1backends_1_1Ts__inherit__graph.map new file mode 100644 index 000000000..0ead289fd --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1Ts__inherit__graph.map @@ -0,0 +1,4 @@ + + + + diff --git a/classo2_1_1monitoring_1_1backends_1_1Ts__inherit__graph.md5 b/classo2_1_1monitoring_1_1backends_1_1Ts__inherit__graph.md5 new file mode 100644 index 000000000..d036a2831 --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1Ts__inherit__graph.md5 @@ -0,0 +1 @@ +f4b599c4ac03678fd4dd9d98a8cf4632 \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1backends_1_1Ts__inherit__graph.svg b/classo2_1_1monitoring_1_1backends_1_1Ts__inherit__graph.svg new file mode 100644 index 000000000..6ca9e4a07 --- /dev/null +++ b/classo2_1_1monitoring_1_1backends_1_1Ts__inherit__graph.svg @@ -0,0 +1,66 @@ + + + + + + +Ts + +Node1 + +Ts + + + + + + +Node2 + + +o2::monitoring::backends +::overloaded< Ts > + + + + + + + + +Node1->Node2 + + + + +Node1->Node2 + + + + +Node1->Node2 + + + + +Node3 + + +overloaded< Ts > + + + + + + + + +Node1->Node3 + + + + + diff --git a/classo2_1_1monitoring_1_1transports_1_1HTTP-members.html b/classo2_1_1monitoring_1_1transports_1_1HTTP-members.html new file mode 100644 index 000000000..78c0ddb53 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1HTTP-members.html @@ -0,0 +1,136 @@ + + + + + + +Monitoring: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
o2::monitoring::transports::HTTP Member List
+
+
+ +

This is the complete list of members for o2::monitoring::transports::HTTP, including all inherited members.

+ + + + + + + +
addHeader(const std::string &header)o2::monitoring::transports::HTTP
HTTP(const std::string &url)o2::monitoring::transports::HTTP
send(std::string &&post)o2::monitoring::transports::HTTPvirtual
TransportInterface()=default (defined in o2::monitoring::transports::TransportInterface)o2::monitoring::transports::TransportInterface
~HTTP()o2::monitoring::transports::HTTP
~TransportInterface()=default (defined in o2::monitoring::transports::TransportInterface)o2::monitoring::transports::TransportInterfacevirtual
+
+ + + + diff --git a/classo2_1_1monitoring_1_1transports_1_1HTTP.html b/classo2_1_1monitoring_1_1transports_1_1HTTP.html new file mode 100644 index 000000000..06bf9e311 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1HTTP.html @@ -0,0 +1,227 @@ + + + + + + +Monitoring: o2::monitoring::transports::HTTP Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
o2::monitoring::transports::HTTP Class Reference
+
+
+ +

HTTP POST transport. + More...

+ +

#include <HTTP.h>

+
+Inheritance diagram for o2::monitoring::transports::HTTP:
+
+
+
+
+
+Collaboration diagram for o2::monitoring::transports::HTTP:
+
+
+
+
+ + + + + + + + + + + + +

+Public Member Functions

 HTTP (const std::string &url)
 
~HTTP ()
 Destructor.
 
void send (std::string &&post)
 
+void addHeader (const std::string &header)
 Adds custom HTTP header.
 
+

Detailed Description

+

HTTP POST transport.

+

Allows to push string formatted metrics as HTTP POST requests via cURL

+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + +
o2::monitoring::transports::HTTP::HTTP (const std::string & url)
+
+

Constructor

Parameters
+ + +
urlURL of HTTP server endpoint
+
+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + +
void o2::monitoring::transports::HTTP::send (std::string && post)
+
+virtual
+
+

Sends metric via HTTP POST

Parameters
+ + +
postr-value reference string formatted metric
+
+
+ +

Implements o2::monitoring::transports::TransportInterface.

+ +
+
+
The documentation for this class was generated from the following files:
    +
  • /home/travis/build/AliceO2Group/Monitoring/src/Transports/HTTP.h
  • +
  • /home/travis/build/AliceO2Group/Monitoring/src/Transports/HTTP.cxx
  • +
+
+
+ + + + diff --git a/classo2_1_1monitoring_1_1transports_1_1HTTP.js b/classo2_1_1monitoring_1_1transports_1_1HTTP.js new file mode 100644 index 000000000..7ca2dfc34 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1HTTP.js @@ -0,0 +1,7 @@ +var classo2_1_1monitoring_1_1transports_1_1HTTP = +[ + [ "HTTP", "classo2_1_1monitoring_1_1transports_1_1HTTP.html#a3bfd3929898babadd8b90f80c2300da5", null ], + [ "~HTTP", "classo2_1_1monitoring_1_1transports_1_1HTTP.html#aa55587e39722549c3a121030ac8489fe", null ], + [ "addHeader", "classo2_1_1monitoring_1_1transports_1_1HTTP.html#acec587dec9e7ae1e504d5d93d64013e9", null ], + [ "send", "classo2_1_1monitoring_1_1transports_1_1HTTP.html#a69caf6b35e7a8f27bef92b513674fc40", null ] +]; \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1transports_1_1HTTP__coll__graph.dot b/classo2_1_1monitoring_1_1transports_1_1HTTP__coll__graph.dot new file mode 100644 index 000000000..4b1f01380 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1HTTP__coll__graph.dot @@ -0,0 +1,10 @@ +digraph "o2::monitoring::transports::HTTP" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="{o2::monitoring::transports\l::HTTP\n||+ HTTP()\l+ ~HTTP()\l+ send()\l+ addHeader()\l}",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; + Node2 [label="{o2::monitoring::transports\l::TransportInterface\n||+ TransportInterface()\l+ ~TransportInterface()\l+ send()\l}",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1transports_1_1TransportInterface.html",tooltip="Transport interface for backends. "]; +} diff --git a/classo2_1_1monitoring_1_1transports_1_1HTTP__coll__graph.map b/classo2_1_1monitoring_1_1transports_1_1HTTP__coll__graph.map new file mode 100644 index 000000000..e50a90ec6 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1HTTP__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/classo2_1_1monitoring_1_1transports_1_1HTTP__coll__graph.md5 b/classo2_1_1monitoring_1_1transports_1_1HTTP__coll__graph.md5 new file mode 100644 index 000000000..fd57ec6cc --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1HTTP__coll__graph.md5 @@ -0,0 +1 @@ +bdb95289cfab825a3023d5b06dfd7193 \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1transports_1_1HTTP__coll__graph.svg b/classo2_1_1monitoring_1_1transports_1_1HTTP__coll__graph.svg new file mode 100644 index 000000000..5227a0f9b --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1HTTP__coll__graph.svg @@ -0,0 +1,45 @@ + + + + + + +o2::monitoring::transports::HTTP + +Node1 + +o2::monitoring::transports +::HTTP + + + ++ HTTP() ++ ~HTTP() ++ send() ++ addHeader() + + +Node2 + + +o2::monitoring::transports +::TransportInterface + + + ++ TransportInterface() ++ ~TransportInterface() ++ send() + + + + +Node2->Node1 + + + + + diff --git a/classo2_1_1monitoring_1_1transports_1_1HTTP__inherit__graph.dot b/classo2_1_1monitoring_1_1transports_1_1HTTP__inherit__graph.dot new file mode 100644 index 000000000..4b1f01380 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1HTTP__inherit__graph.dot @@ -0,0 +1,10 @@ +digraph "o2::monitoring::transports::HTTP" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="{o2::monitoring::transports\l::HTTP\n||+ HTTP()\l+ ~HTTP()\l+ send()\l+ addHeader()\l}",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; + Node2 [label="{o2::monitoring::transports\l::TransportInterface\n||+ TransportInterface()\l+ ~TransportInterface()\l+ send()\l}",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1transports_1_1TransportInterface.html",tooltip="Transport interface for backends. "]; +} diff --git a/classo2_1_1monitoring_1_1transports_1_1HTTP__inherit__graph.map b/classo2_1_1monitoring_1_1transports_1_1HTTP__inherit__graph.map new file mode 100644 index 000000000..e50a90ec6 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1HTTP__inherit__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/classo2_1_1monitoring_1_1transports_1_1HTTP__inherit__graph.md5 b/classo2_1_1monitoring_1_1transports_1_1HTTP__inherit__graph.md5 new file mode 100644 index 000000000..fd57ec6cc --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1HTTP__inherit__graph.md5 @@ -0,0 +1 @@ +bdb95289cfab825a3023d5b06dfd7193 \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1transports_1_1HTTP__inherit__graph.svg b/classo2_1_1monitoring_1_1transports_1_1HTTP__inherit__graph.svg new file mode 100644 index 000000000..5227a0f9b --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1HTTP__inherit__graph.svg @@ -0,0 +1,45 @@ + + + + + + +o2::monitoring::transports::HTTP + +Node1 + +o2::monitoring::transports +::HTTP + + + ++ HTTP() ++ ~HTTP() ++ send() ++ addHeader() + + +Node2 + + +o2::monitoring::transports +::TransportInterface + + + ++ TransportInterface() ++ ~TransportInterface() ++ send() + + + + +Node2->Node1 + + + + + diff --git a/classo2_1_1monitoring_1_1transports_1_1Kafka-members.html b/classo2_1_1monitoring_1_1transports_1_1Kafka-members.html new file mode 100644 index 000000000..a0896e3ef --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1Kafka-members.html @@ -0,0 +1,135 @@ + + + + + + +Monitoring: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
o2::monitoring::transports::Kafka Member List
+
+
+ +

This is the complete list of members for o2::monitoring::transports::Kafka, including all inherited members.

+ + + + + + +
Kafka(const std::string &host, unsigned int port, const std::string &topic="test")o2::monitoring::transports::Kafka
send(std::string &&message) overrideo2::monitoring::transports::Kafkavirtual
TransportInterface()=default (defined in o2::monitoring::transports::TransportInterface)o2::monitoring::transports::TransportInterface
~Kafka()o2::monitoring::transports::Kafka
~TransportInterface()=default (defined in o2::monitoring::transports::TransportInterface)o2::monitoring::transports::TransportInterfacevirtual
+
+ + + + diff --git a/classo2_1_1monitoring_1_1transports_1_1Kafka.html b/classo2_1_1monitoring_1_1transports_1_1Kafka.html new file mode 100644 index 000000000..d513b57e9 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1Kafka.html @@ -0,0 +1,240 @@ + + + + + + +Monitoring: o2::monitoring::transports::Kafka Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
o2::monitoring::transports::Kafka Class Reference
+
+
+ +

Transport that sends string formatted metrics via Kafka. + More...

+ +

#include <Kafka.h>

+
+Inheritance diagram for o2::monitoring::transports::Kafka:
+
+
+
+
+
+Collaboration diagram for o2::monitoring::transports::Kafka:
+
+
+
+
+ + + + + + + + + +

+Public Member Functions

 Kafka (const std::string &host, unsigned int port, const std::string &topic="test")
 
~Kafka ()
 Deletes producer.
 
void send (std::string &&message) override
 
+

Detailed Description

+

Transport that sends string formatted metrics via Kafka.

+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
o2::monitoring::transports::Kafka::Kafka (const std::string & host,
unsigned int port,
const std::string & topic = "test" 
)
+
+

Creates producer

Parameters
+ + + + +
hostnameHostname
portPort number
topicKafka topic
+
+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + +
void o2::monitoring::transports::Kafka::send (std::string && message)
+
+overridevirtual
+
+

Sends metric via Kafka

Parameters
+ + +
messager-value string formated
+
+
+ +

Implements o2::monitoring::transports::TransportInterface.

+ +
+
+
The documentation for this class was generated from the following files:
    +
  • /home/travis/build/AliceO2Group/Monitoring/src/Transports/Kafka.h
  • +
  • /home/travis/build/AliceO2Group/Monitoring/src/Transports/Kafka.cxx
  • +
+
+
+ + + + diff --git a/classo2_1_1monitoring_1_1transports_1_1Kafka.js b/classo2_1_1monitoring_1_1transports_1_1Kafka.js new file mode 100644 index 000000000..95478072a --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1Kafka.js @@ -0,0 +1,6 @@ +var classo2_1_1monitoring_1_1transports_1_1Kafka = +[ + [ "Kafka", "classo2_1_1monitoring_1_1transports_1_1Kafka.html#a03901cc9636a21772dd51d258363947e", null ], + [ "~Kafka", "classo2_1_1monitoring_1_1transports_1_1Kafka.html#a62999e3d14c1fab1c7bd399ff6c1e7e1", null ], + [ "send", "classo2_1_1monitoring_1_1transports_1_1Kafka.html#aa7df39f3e99c91d4259796a38102696d", null ] +]; \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1transports_1_1Kafka__coll__graph.dot b/classo2_1_1monitoring_1_1transports_1_1Kafka__coll__graph.dot new file mode 100644 index 000000000..8e761c74e --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1Kafka__coll__graph.dot @@ -0,0 +1,10 @@ +digraph "o2::monitoring::transports::Kafka" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="{o2::monitoring::transports\l::Kafka\n||+ Kafka()\l+ ~Kafka()\l+ send()\l}",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; + Node2 [label="{o2::monitoring::transports\l::TransportInterface\n||+ TransportInterface()\l+ ~TransportInterface()\l+ send()\l}",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1transports_1_1TransportInterface.html",tooltip="Transport interface for backends. "]; +} diff --git a/classo2_1_1monitoring_1_1transports_1_1Kafka__coll__graph.map b/classo2_1_1monitoring_1_1transports_1_1Kafka__coll__graph.map new file mode 100644 index 000000000..245417ff3 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1Kafka__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/classo2_1_1monitoring_1_1transports_1_1Kafka__coll__graph.md5 b/classo2_1_1monitoring_1_1transports_1_1Kafka__coll__graph.md5 new file mode 100644 index 000000000..7e2189122 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1Kafka__coll__graph.md5 @@ -0,0 +1 @@ +a2b3e1bc8cf076c8624ec39107a6a195 \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1transports_1_1Kafka__coll__graph.svg b/classo2_1_1monitoring_1_1transports_1_1Kafka__coll__graph.svg new file mode 100644 index 000000000..92973b3d7 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1Kafka__coll__graph.svg @@ -0,0 +1,44 @@ + + + + + + +o2::monitoring::transports::Kafka + +Node1 + +o2::monitoring::transports +::Kafka + + + ++ Kafka() ++ ~Kafka() ++ send() + + +Node2 + + +o2::monitoring::transports +::TransportInterface + + + ++ TransportInterface() ++ ~TransportInterface() ++ send() + + + + +Node2->Node1 + + + + + diff --git a/classo2_1_1monitoring_1_1transports_1_1Kafka__inherit__graph.dot b/classo2_1_1monitoring_1_1transports_1_1Kafka__inherit__graph.dot new file mode 100644 index 000000000..8e761c74e --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1Kafka__inherit__graph.dot @@ -0,0 +1,10 @@ +digraph "o2::monitoring::transports::Kafka" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="{o2::monitoring::transports\l::Kafka\n||+ Kafka()\l+ ~Kafka()\l+ send()\l}",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; + Node2 [label="{o2::monitoring::transports\l::TransportInterface\n||+ TransportInterface()\l+ ~TransportInterface()\l+ send()\l}",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1transports_1_1TransportInterface.html",tooltip="Transport interface for backends. "]; +} diff --git a/classo2_1_1monitoring_1_1transports_1_1Kafka__inherit__graph.map b/classo2_1_1monitoring_1_1transports_1_1Kafka__inherit__graph.map new file mode 100644 index 000000000..245417ff3 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1Kafka__inherit__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/classo2_1_1monitoring_1_1transports_1_1Kafka__inherit__graph.md5 b/classo2_1_1monitoring_1_1transports_1_1Kafka__inherit__graph.md5 new file mode 100644 index 000000000..7e2189122 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1Kafka__inherit__graph.md5 @@ -0,0 +1 @@ +a2b3e1bc8cf076c8624ec39107a6a195 \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1transports_1_1Kafka__inherit__graph.svg b/classo2_1_1monitoring_1_1transports_1_1Kafka__inherit__graph.svg new file mode 100644 index 000000000..92973b3d7 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1Kafka__inherit__graph.svg @@ -0,0 +1,44 @@ + + + + + + +o2::monitoring::transports::Kafka + +Node1 + +o2::monitoring::transports +::Kafka + + + ++ Kafka() ++ ~Kafka() ++ send() + + +Node2 + + +o2::monitoring::transports +::TransportInterface + + + ++ TransportInterface() ++ ~TransportInterface() ++ send() + + + + +Node2->Node1 + + + + + diff --git a/classo2_1_1monitoring_1_1transports_1_1StdOut-members.html b/classo2_1_1monitoring_1_1transports_1_1StdOut-members.html new file mode 100644 index 000000000..0c4d94db3 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1StdOut-members.html @@ -0,0 +1,136 @@ + + + + + + +Monitoring: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
o2::monitoring::transports::StdOut Member List
+
+
+ +

This is the complete list of members for o2::monitoring::transports::StdOut, including all inherited members.

+ + + + + + + +
operator<<(const T &msg)o2::monitoring::transports::StdOut
send(std::string &&message) overrideo2::monitoring::transports::StdOutvirtual
StdOut()=defaulto2::monitoring::transports::StdOut
TransportInterface()=default (defined in o2::monitoring::transports::TransportInterface)o2::monitoring::transports::TransportInterface
~StdOut()=defaulto2::monitoring::transports::StdOut
~TransportInterface()=default (defined in o2::monitoring::transports::TransportInterface)o2::monitoring::transports::TransportInterfacevirtual
+
+ + + + diff --git a/classo2_1_1monitoring_1_1transports_1_1StdOut.html b/classo2_1_1monitoring_1_1transports_1_1StdOut.html new file mode 100644 index 000000000..27fecc597 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1StdOut.html @@ -0,0 +1,206 @@ + + + + + + +Monitoring: o2::monitoring::transports::StdOut Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
o2::monitoring::transports::StdOut Class Reference
+
+
+ +

Transport that sends string formatted metrics via StdOut. + More...

+ +

#include <StdOut.h>

+
+Inheritance diagram for o2::monitoring::transports::StdOut:
+
+
+
+
+
+Collaboration diagram for o2::monitoring::transports::StdOut:
+
+
+
+
+ + + + + + + + + + + + + + +

+Public Member Functions

StdOut ()=default
 Constructor.
 
~StdOut ()=default
 Default destructor.
 
void send (std::string &&message) override
 
+template<typename T >
StdOutoperator<< (const T &msg)
 Overload stream operator.
 
+

Detailed Description

+

Transport that sends string formatted metrics via StdOut.

+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + +
void o2::monitoring::transports::StdOut::send (std::string && message)
+
+overridevirtual
+
+

Sends metric via StdOut

Parameters
+ + +
messager-value string formated
+
+
+ +

Implements o2::monitoring::transports::TransportInterface.

+ +
+
+
The documentation for this class was generated from the following files:
    +
  • /home/travis/build/AliceO2Group/Monitoring/src/Transports/StdOut.h
  • +
  • /home/travis/build/AliceO2Group/Monitoring/src/Transports/StdOut.cxx
  • +
+
+
+ + + + diff --git a/classo2_1_1monitoring_1_1transports_1_1StdOut.js b/classo2_1_1monitoring_1_1transports_1_1StdOut.js new file mode 100644 index 000000000..3224976db --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1StdOut.js @@ -0,0 +1,7 @@ +var classo2_1_1monitoring_1_1transports_1_1StdOut = +[ + [ "StdOut", "classo2_1_1monitoring_1_1transports_1_1StdOut.html#ad7323a5152d639c529d22151818a7843", null ], + [ "~StdOut", "classo2_1_1monitoring_1_1transports_1_1StdOut.html#ae547eb2c476f0677f694bbd5d7519803", null ], + [ "operator<<", "classo2_1_1monitoring_1_1transports_1_1StdOut.html#ac418ec1dbb3aab4180af7504e8adbe81", null ], + [ "send", "classo2_1_1monitoring_1_1transports_1_1StdOut.html#a78957bd9f1a409b565ad14bb0657dfd5", null ] +]; \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1transports_1_1StdOut__coll__graph.dot b/classo2_1_1monitoring_1_1transports_1_1StdOut__coll__graph.dot new file mode 100644 index 000000000..d2135c047 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1StdOut__coll__graph.dot @@ -0,0 +1,10 @@ +digraph "o2::monitoring::transports::StdOut" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="{o2::monitoring::transports\l::StdOut\n||+ StdOut()\l+ ~StdOut()\l+ send()\l+ operator\<\<()\l}",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; + Node2 [label="{o2::monitoring::transports\l::TransportInterface\n||+ TransportInterface()\l+ ~TransportInterface()\l+ send()\l}",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1transports_1_1TransportInterface.html",tooltip="Transport interface for backends. "]; +} diff --git a/classo2_1_1monitoring_1_1transports_1_1StdOut__coll__graph.map b/classo2_1_1monitoring_1_1transports_1_1StdOut__coll__graph.map new file mode 100644 index 000000000..2a835c996 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1StdOut__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/classo2_1_1monitoring_1_1transports_1_1StdOut__coll__graph.md5 b/classo2_1_1monitoring_1_1transports_1_1StdOut__coll__graph.md5 new file mode 100644 index 000000000..06566cccf --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1StdOut__coll__graph.md5 @@ -0,0 +1 @@ +4071becbbf8f103e56e4800b09ef6df1 \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1transports_1_1StdOut__coll__graph.svg b/classo2_1_1monitoring_1_1transports_1_1StdOut__coll__graph.svg new file mode 100644 index 000000000..3444885c7 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1StdOut__coll__graph.svg @@ -0,0 +1,45 @@ + + + + + + +o2::monitoring::transports::StdOut + +Node1 + +o2::monitoring::transports +::StdOut + + + ++ StdOut() ++ ~StdOut() ++ send() ++ operator<<() + + +Node2 + + +o2::monitoring::transports +::TransportInterface + + + ++ TransportInterface() ++ ~TransportInterface() ++ send() + + + + +Node2->Node1 + + + + + diff --git a/classo2_1_1monitoring_1_1transports_1_1StdOut__inherit__graph.dot b/classo2_1_1monitoring_1_1transports_1_1StdOut__inherit__graph.dot new file mode 100644 index 000000000..d2135c047 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1StdOut__inherit__graph.dot @@ -0,0 +1,10 @@ +digraph "o2::monitoring::transports::StdOut" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="{o2::monitoring::transports\l::StdOut\n||+ StdOut()\l+ ~StdOut()\l+ send()\l+ operator\<\<()\l}",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; + Node2 [label="{o2::monitoring::transports\l::TransportInterface\n||+ TransportInterface()\l+ ~TransportInterface()\l+ send()\l}",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1transports_1_1TransportInterface.html",tooltip="Transport interface for backends. "]; +} diff --git a/classo2_1_1monitoring_1_1transports_1_1StdOut__inherit__graph.map b/classo2_1_1monitoring_1_1transports_1_1StdOut__inherit__graph.map new file mode 100644 index 000000000..2a835c996 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1StdOut__inherit__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/classo2_1_1monitoring_1_1transports_1_1StdOut__inherit__graph.md5 b/classo2_1_1monitoring_1_1transports_1_1StdOut__inherit__graph.md5 new file mode 100644 index 000000000..06566cccf --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1StdOut__inherit__graph.md5 @@ -0,0 +1 @@ +4071becbbf8f103e56e4800b09ef6df1 \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1transports_1_1StdOut__inherit__graph.svg b/classo2_1_1monitoring_1_1transports_1_1StdOut__inherit__graph.svg new file mode 100644 index 000000000..3444885c7 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1StdOut__inherit__graph.svg @@ -0,0 +1,45 @@ + + + + + + +o2::monitoring::transports::StdOut + +Node1 + +o2::monitoring::transports +::StdOut + + + ++ StdOut() ++ ~StdOut() ++ send() ++ operator<<() + + +Node2 + + +o2::monitoring::transports +::TransportInterface + + + ++ TransportInterface() ++ ~TransportInterface() ++ send() + + + + +Node2->Node1 + + + + + diff --git a/classo2_1_1monitoring_1_1transports_1_1TCP-members.html b/classo2_1_1monitoring_1_1transports_1_1TCP-members.html new file mode 100644 index 000000000..ff3603b03 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1TCP-members.html @@ -0,0 +1,135 @@ + + + + + + +Monitoring: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
o2::monitoring::transports::TCP Member List
+
+
+ +

This is the complete list of members for o2::monitoring::transports::TCP, including all inherited members.

+ + + + + + +
send(std::string &&message) overrideo2::monitoring::transports::TCPvirtual
TCP(const std::string &hostname, int port)o2::monitoring::transports::TCP
TransportInterface()=default (defined in o2::monitoring::transports::TransportInterface)o2::monitoring::transports::TransportInterface
~TCP()=defaulto2::monitoring::transports::TCP
~TransportInterface()=default (defined in o2::monitoring::transports::TransportInterface)o2::monitoring::transports::TransportInterfacevirtual
+
+ + + + diff --git a/classo2_1_1monitoring_1_1transports_1_1TCP.html b/classo2_1_1monitoring_1_1transports_1_1TCP.html new file mode 100644 index 000000000..e94db149f --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1TCP.html @@ -0,0 +1,233 @@ + + + + + + +Monitoring: o2::monitoring::transports::TCP Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
o2::monitoring::transports::TCP Class Reference
+
+
+ +

Transport that sends string formatted metrics via TCP. + More...

+ +

#include <TCP.h>

+
+Inheritance diagram for o2::monitoring::transports::TCP:
+
+
+
+
+
+Collaboration diagram for o2::monitoring::transports::TCP:
+
+
+
+
+ + + + + + + + + +

+Public Member Functions

 TCP (const std::string &hostname, int port)
 
~TCP ()=default
 Default destructor.
 
void send (std::string &&message) override
 
+

Detailed Description

+

Transport that sends string formatted metrics via TCP.

+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
o2::monitoring::transports::TCP::TCP (const std::string & hostname,
int port 
)
+
+

Constructor

Parameters
+ + + +
hostnameInfluxDB instance hostname
portInfluxDB instance port number
+
+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + +
void o2::monitoring::transports::TCP::send (std::string && message)
+
+overridevirtual
+
+

Sends metric via UDP

Parameters
+ + +
messager-value string formated
+
+
+ +

Implements o2::monitoring::transports::TransportInterface.

+ +
+
+
The documentation for this class was generated from the following files:
    +
  • /home/travis/build/AliceO2Group/Monitoring/src/Transports/TCP.h
  • +
  • /home/travis/build/AliceO2Group/Monitoring/src/Transports/TCP.cxx
  • +
+
+
+ + + + diff --git a/classo2_1_1monitoring_1_1transports_1_1TCP.js b/classo2_1_1monitoring_1_1transports_1_1TCP.js new file mode 100644 index 000000000..2cef96022 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1TCP.js @@ -0,0 +1,6 @@ +var classo2_1_1monitoring_1_1transports_1_1TCP = +[ + [ "TCP", "classo2_1_1monitoring_1_1transports_1_1TCP.html#a9b84231848d8e53a144b4441f0ceb51b", null ], + [ "~TCP", "classo2_1_1monitoring_1_1transports_1_1TCP.html#a07f8d869dcf81b9db7f14c8354f50efd", null ], + [ "send", "classo2_1_1monitoring_1_1transports_1_1TCP.html#a1ebb22e3478af54d51a285d4b171b62b", null ] +]; \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1transports_1_1TCP__coll__graph.dot b/classo2_1_1monitoring_1_1transports_1_1TCP__coll__graph.dot new file mode 100644 index 000000000..07e220821 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1TCP__coll__graph.dot @@ -0,0 +1,10 @@ +digraph "o2::monitoring::transports::TCP" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="{o2::monitoring::transports::TCP\n||+ TCP()\l+ ~TCP()\l+ send()\l}",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; + Node2 [label="{o2::monitoring::transports\l::TransportInterface\n||+ TransportInterface()\l+ ~TransportInterface()\l+ send()\l}",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1transports_1_1TransportInterface.html",tooltip="Transport interface for backends. "]; +} diff --git a/classo2_1_1monitoring_1_1transports_1_1TCP__coll__graph.map b/classo2_1_1monitoring_1_1transports_1_1TCP__coll__graph.map new file mode 100644 index 000000000..eb538d7ae --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1TCP__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/classo2_1_1monitoring_1_1transports_1_1TCP__coll__graph.md5 b/classo2_1_1monitoring_1_1transports_1_1TCP__coll__graph.md5 new file mode 100644 index 000000000..05832acff --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1TCP__coll__graph.md5 @@ -0,0 +1 @@ +ae8879db4a86d34fb4d3aad75beb671c \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1transports_1_1TCP__coll__graph.svg b/classo2_1_1monitoring_1_1transports_1_1TCP__coll__graph.svg new file mode 100644 index 000000000..cf5c34f92 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1TCP__coll__graph.svg @@ -0,0 +1,43 @@ + + + + + + +o2::monitoring::transports::TCP + +Node1 + +o2::monitoring::transports::TCP + + + ++ TCP() ++ ~TCP() ++ send() + + +Node2 + + +o2::monitoring::transports +::TransportInterface + + + ++ TransportInterface() ++ ~TransportInterface() ++ send() + + + + +Node2->Node1 + + + + + diff --git a/classo2_1_1monitoring_1_1transports_1_1TCP__inherit__graph.dot b/classo2_1_1monitoring_1_1transports_1_1TCP__inherit__graph.dot new file mode 100644 index 000000000..07e220821 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1TCP__inherit__graph.dot @@ -0,0 +1,10 @@ +digraph "o2::monitoring::transports::TCP" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="{o2::monitoring::transports::TCP\n||+ TCP()\l+ ~TCP()\l+ send()\l}",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; + Node2 [label="{o2::monitoring::transports\l::TransportInterface\n||+ TransportInterface()\l+ ~TransportInterface()\l+ send()\l}",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1transports_1_1TransportInterface.html",tooltip="Transport interface for backends. "]; +} diff --git a/classo2_1_1monitoring_1_1transports_1_1TCP__inherit__graph.map b/classo2_1_1monitoring_1_1transports_1_1TCP__inherit__graph.map new file mode 100644 index 000000000..eb538d7ae --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1TCP__inherit__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/classo2_1_1monitoring_1_1transports_1_1TCP__inherit__graph.md5 b/classo2_1_1monitoring_1_1transports_1_1TCP__inherit__graph.md5 new file mode 100644 index 000000000..05832acff --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1TCP__inherit__graph.md5 @@ -0,0 +1 @@ +ae8879db4a86d34fb4d3aad75beb671c \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1transports_1_1TCP__inherit__graph.svg b/classo2_1_1monitoring_1_1transports_1_1TCP__inherit__graph.svg new file mode 100644 index 000000000..cf5c34f92 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1TCP__inherit__graph.svg @@ -0,0 +1,43 @@ + + + + + + +o2::monitoring::transports::TCP + +Node1 + +o2::monitoring::transports::TCP + + + ++ TCP() ++ ~TCP() ++ send() + + +Node2 + + +o2::monitoring::transports +::TransportInterface + + + ++ TransportInterface() ++ ~TransportInterface() ++ send() + + + + +Node2->Node1 + + + + + diff --git a/classo2_1_1monitoring_1_1transports_1_1TransportInterface-members.html b/classo2_1_1monitoring_1_1transports_1_1TransportInterface-members.html new file mode 100644 index 000000000..34fc2016f --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1TransportInterface-members.html @@ -0,0 +1,133 @@ + + + + + + +Monitoring: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
o2::monitoring::transports::TransportInterface Member List
+
+
+ +

This is the complete list of members for o2::monitoring::transports::TransportInterface, including all inherited members.

+ + + + +
send(std::string &&message)=0o2::monitoring::transports::TransportInterfacepure virtual
TransportInterface()=default (defined in o2::monitoring::transports::TransportInterface)o2::monitoring::transports::TransportInterface
~TransportInterface()=default (defined in o2::monitoring::transports::TransportInterface)o2::monitoring::transports::TransportInterfacevirtual
+
+ + + + diff --git a/classo2_1_1monitoring_1_1transports_1_1TransportInterface.html b/classo2_1_1monitoring_1_1transports_1_1TransportInterface.html new file mode 100644 index 000000000..f72a8ad52 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1TransportInterface.html @@ -0,0 +1,192 @@ + + + + + + +Monitoring: o2::monitoring::transports::TransportInterface Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
o2::monitoring::transports::TransportInterface Class Referenceabstract
+
+
+ +

Transport interface for backends. + More...

+ +

#include <TransportInterface.h>

+
+Inheritance diagram for o2::monitoring::transports::TransportInterface:
+
+
+
+
+
+Collaboration diagram for o2::monitoring::transports::TransportInterface:
+
+
+
+
+ + + + +

+Public Member Functions

virtual void send (std::string &&message)=0
 
+

Detailed Description

+

Transport interface for backends.

+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void o2::monitoring::transports::TransportInterface::send (std::string && message)
+
+pure virtual
+
+

Sends metric via given transport

Parameters
+ + +
messager-value to string formatted metric
+
+
+ +

Implemented in o2::monitoring::transports::Kafka, o2::monitoring::transports::TCP, o2::monitoring::transports::UDP, o2::monitoring::transports::Unix, o2::monitoring::transports::StdOut, and o2::monitoring::transports::HTTP.

+ +
+
+
The documentation for this class was generated from the following file: +
+
+ + + + diff --git a/classo2_1_1monitoring_1_1transports_1_1TransportInterface.js b/classo2_1_1monitoring_1_1transports_1_1TransportInterface.js new file mode 100644 index 000000000..5738ac813 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1TransportInterface.js @@ -0,0 +1,6 @@ +var classo2_1_1monitoring_1_1transports_1_1TransportInterface = +[ + [ "TransportInterface", "classo2_1_1monitoring_1_1transports_1_1TransportInterface.html#abf34073739b94c24d753ec48bfaddbf0", null ], + [ "~TransportInterface", "classo2_1_1monitoring_1_1transports_1_1TransportInterface.html#aef741cd7b381ac1293885acaefc392b8", null ], + [ "send", "classo2_1_1monitoring_1_1transports_1_1TransportInterface.html#a157d291d9b965e4c224a0232228ecb27", null ] +]; \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1transports_1_1TransportInterface__coll__graph.dot b/classo2_1_1monitoring_1_1transports_1_1TransportInterface__coll__graph.dot new file mode 100644 index 000000000..8480354c1 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1TransportInterface__coll__graph.dot @@ -0,0 +1,8 @@ +digraph "o2::monitoring::transports::TransportInterface" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="{o2::monitoring::transports\l::TransportInterface\n||+ TransportInterface()\l+ ~TransportInterface()\l+ send()\l}",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; +} diff --git a/classo2_1_1monitoring_1_1transports_1_1TransportInterface__coll__graph.map b/classo2_1_1monitoring_1_1transports_1_1TransportInterface__coll__graph.map new file mode 100644 index 000000000..8984cdd19 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1TransportInterface__coll__graph.map @@ -0,0 +1,2 @@ + + diff --git a/classo2_1_1monitoring_1_1transports_1_1TransportInterface__coll__graph.md5 b/classo2_1_1monitoring_1_1transports_1_1TransportInterface__coll__graph.md5 new file mode 100644 index 000000000..36c0e2eda --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1TransportInterface__coll__graph.md5 @@ -0,0 +1 @@ +317595ac0ec5ce1b9b0c3859c425f37a \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1transports_1_1TransportInterface__coll__graph.svg b/classo2_1_1monitoring_1_1transports_1_1TransportInterface__coll__graph.svg new file mode 100644 index 000000000..224da4be8 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1TransportInterface__coll__graph.svg @@ -0,0 +1,24 @@ + + + + + + +o2::monitoring::transports::TransportInterface + +Node1 + +o2::monitoring::transports +::TransportInterface + + + ++ TransportInterface() ++ ~TransportInterface() ++ send() + + + diff --git a/classo2_1_1monitoring_1_1transports_1_1TransportInterface__inherit__graph.dot b/classo2_1_1monitoring_1_1transports_1_1TransportInterface__inherit__graph.dot new file mode 100644 index 000000000..bbef06d9c --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1TransportInterface__inherit__graph.dot @@ -0,0 +1,20 @@ +digraph "o2::monitoring::transports::TransportInterface" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="{o2::monitoring::transports\l::TransportInterface\n||+ TransportInterface()\l+ ~TransportInterface()\l+ send()\l}",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; + Node2 [label="{o2::monitoring::transports\l::HTTP\n||+ HTTP()\l+ ~HTTP()\l+ send()\l+ addHeader()\l}",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1transports_1_1HTTP.html",tooltip="HTTP POST transport. "]; + Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; + Node3 [label="{o2::monitoring::transports\l::Kafka\n||+ Kafka()\l+ ~Kafka()\l+ send()\l}",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1transports_1_1Kafka.html",tooltip="Transport that sends string formatted metrics via Kafka. "]; + Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; + Node4 [label="{o2::monitoring::transports\l::StdOut\n||+ StdOut()\l+ ~StdOut()\l+ send()\l+ operator\<\<()\l}",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1transports_1_1StdOut.html",tooltip="Transport that sends string formatted metrics via StdOut. "]; + Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; + Node5 [label="{o2::monitoring::transports::TCP\n||+ TCP()\l+ ~TCP()\l+ send()\l}",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1transports_1_1TCP.html",tooltip="Transport that sends string formatted metrics via TCP. "]; + Node1 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; + Node6 [label="{o2::monitoring::transports::UDP\n||+ UDP()\l+ ~UDP()\l+ send()\l}",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1transports_1_1UDP.html",tooltip="Transport that sends string formatted metrics via UDP. "]; + Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; + Node7 [label="{o2::monitoring::transports\l::Unix\n||+ Unix()\l+ ~Unix()\l+ send()\l}",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1transports_1_1Unix.html",tooltip="Transport that sends string formatted metrics via Unix datagram socket. "]; +} diff --git a/classo2_1_1monitoring_1_1transports_1_1TransportInterface__inherit__graph.map b/classo2_1_1monitoring_1_1transports_1_1TransportInterface__inherit__graph.map new file mode 100644 index 000000000..a2b365023 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1TransportInterface__inherit__graph.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/classo2_1_1monitoring_1_1transports_1_1TransportInterface__inherit__graph.md5 b/classo2_1_1monitoring_1_1transports_1_1TransportInterface__inherit__graph.md5 new file mode 100644 index 000000000..8fcff2f28 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1TransportInterface__inherit__graph.md5 @@ -0,0 +1 @@ +8ee4153d9c093c453c01793cc459a8b1 \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1transports_1_1TransportInterface__inherit__graph.svg b/classo2_1_1monitoring_1_1transports_1_1TransportInterface__inherit__graph.svg new file mode 100644 index 000000000..186d83a98 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1TransportInterface__inherit__graph.svg @@ -0,0 +1,232 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +o2::monitoring::transports::TransportInterface + +Node1 + +o2::monitoring::transports +::TransportInterface + + + ++ TransportInterface() ++ ~TransportInterface() ++ send() + + +Node2 + + +o2::monitoring::transports +::HTTP + + + ++ HTTP() ++ ~HTTP() ++ send() ++ addHeader() + + + + +Node1->Node2 + + + + +Node3 + + +o2::monitoring::transports +::Kafka + + + ++ Kafka() ++ ~Kafka() ++ send() + + + + +Node1->Node3 + + + + +Node4 + + +o2::monitoring::transports +::StdOut + + + ++ StdOut() ++ ~StdOut() ++ send() ++ operator<<() + + + + +Node1->Node4 + + + + +Node5 + + +o2::monitoring::transports::TCP + + + ++ TCP() ++ ~TCP() ++ send() + + + + +Node1->Node5 + + + + +Node6 + + +o2::monitoring::transports::UDP + + + ++ UDP() ++ ~UDP() ++ send() + + + + +Node1->Node6 + + + + +Node7 + + +o2::monitoring::transports +::Unix + + + ++ Unix() ++ ~Unix() ++ send() + + + + +Node1->Node7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/classo2_1_1monitoring_1_1transports_1_1TransportInterface__inherit__graph_org.svg b/classo2_1_1monitoring_1_1transports_1_1TransportInterface__inherit__graph_org.svg new file mode 100644 index 000000000..68aaf6407 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1TransportInterface__inherit__graph_org.svg @@ -0,0 +1,144 @@ + + + + + + +o2::monitoring::transports::TransportInterface + +Node1 + +o2::monitoring::transports +::TransportInterface + + + ++ TransportInterface() ++ ~TransportInterface() ++ send() + + +Node2 + + +o2::monitoring::transports +::HTTP + + + ++ HTTP() ++ ~HTTP() ++ send() ++ addHeader() + + + + +Node1->Node2 + + + + +Node3 + + +o2::monitoring::transports +::Kafka + + + ++ Kafka() ++ ~Kafka() ++ send() + + + + +Node1->Node3 + + + + +Node4 + + +o2::monitoring::transports +::StdOut + + + ++ StdOut() ++ ~StdOut() ++ send() ++ operator<<() + + + + +Node1->Node4 + + + + +Node5 + + +o2::monitoring::transports::TCP + + + ++ TCP() ++ ~TCP() ++ send() + + + + +Node1->Node5 + + + + +Node6 + + +o2::monitoring::transports::UDP + + + ++ UDP() ++ ~UDP() ++ send() + + + + +Node1->Node6 + + + + +Node7 + + +o2::monitoring::transports +::Unix + + + ++ Unix() ++ ~Unix() ++ send() + + + + +Node1->Node7 + + + + + diff --git a/classo2_1_1monitoring_1_1transports_1_1UDP-members.html b/classo2_1_1monitoring_1_1transports_1_1UDP-members.html new file mode 100644 index 000000000..edf42a445 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1UDP-members.html @@ -0,0 +1,135 @@ + + + + + + +Monitoring: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
o2::monitoring::transports::UDP Member List
+
+
+ +

This is the complete list of members for o2::monitoring::transports::UDP, including all inherited members.

+ + + + + + +
send(std::string &&message) overrideo2::monitoring::transports::UDPvirtual
TransportInterface()=default (defined in o2::monitoring::transports::TransportInterface)o2::monitoring::transports::TransportInterface
UDP(const std::string &hostname, int port)o2::monitoring::transports::UDP
~TransportInterface()=default (defined in o2::monitoring::transports::TransportInterface)o2::monitoring::transports::TransportInterfacevirtual
~UDP()=defaulto2::monitoring::transports::UDP
+
+ + + + diff --git a/classo2_1_1monitoring_1_1transports_1_1UDP.html b/classo2_1_1monitoring_1_1transports_1_1UDP.html new file mode 100644 index 000000000..fe7369aae --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1UDP.html @@ -0,0 +1,233 @@ + + + + + + +Monitoring: o2::monitoring::transports::UDP Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
o2::monitoring::transports::UDP Class Reference
+
+
+ +

Transport that sends string formatted metrics via UDP. + More...

+ +

#include <UDP.h>

+
+Inheritance diagram for o2::monitoring::transports::UDP:
+
+
+
+
+
+Collaboration diagram for o2::monitoring::transports::UDP:
+
+
+
+
+ + + + + + + + + +

+Public Member Functions

 UDP (const std::string &hostname, int port)
 
~UDP ()=default
 Default destructor.
 
void send (std::string &&message) override
 
+

Detailed Description

+

Transport that sends string formatted metrics via UDP.

+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
o2::monitoring::transports::UDP::UDP (const std::string & hostname,
int port 
)
+
+

Constructor

Parameters
+ + + +
hostnameInfluxDB instance hostname
portInfluxDB instance port number
+
+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + +
void o2::monitoring::transports::UDP::send (std::string && message)
+
+overridevirtual
+
+

Sends metric via UDP

Parameters
+ + +
messager-value string formated
+
+
+ +

Implements o2::monitoring::transports::TransportInterface.

+ +
+
+
The documentation for this class was generated from the following files:
    +
  • /home/travis/build/AliceO2Group/Monitoring/src/Transports/UDP.h
  • +
  • /home/travis/build/AliceO2Group/Monitoring/src/Transports/UDP.cxx
  • +
+
+
+ + + + diff --git a/classo2_1_1monitoring_1_1transports_1_1UDP.js b/classo2_1_1monitoring_1_1transports_1_1UDP.js new file mode 100644 index 000000000..9f5542a59 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1UDP.js @@ -0,0 +1,6 @@ +var classo2_1_1monitoring_1_1transports_1_1UDP = +[ + [ "UDP", "classo2_1_1monitoring_1_1transports_1_1UDP.html#a8c2d0c282e4b743d79a11b8adc896cfe", null ], + [ "~UDP", "classo2_1_1monitoring_1_1transports_1_1UDP.html#a914b7b729746f1a1746531aea237c99d", null ], + [ "send", "classo2_1_1monitoring_1_1transports_1_1UDP.html#a98abbd5b00501dd472cfeef9d0b91eaa", null ] +]; \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1transports_1_1UDP__coll__graph.dot b/classo2_1_1monitoring_1_1transports_1_1UDP__coll__graph.dot new file mode 100644 index 000000000..59d92bf3a --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1UDP__coll__graph.dot @@ -0,0 +1,10 @@ +digraph "o2::monitoring::transports::UDP" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="{o2::monitoring::transports::UDP\n||+ UDP()\l+ ~UDP()\l+ send()\l}",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; + Node2 [label="{o2::monitoring::transports\l::TransportInterface\n||+ TransportInterface()\l+ ~TransportInterface()\l+ send()\l}",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1transports_1_1TransportInterface.html",tooltip="Transport interface for backends. "]; +} diff --git a/classo2_1_1monitoring_1_1transports_1_1UDP__coll__graph.map b/classo2_1_1monitoring_1_1transports_1_1UDP__coll__graph.map new file mode 100644 index 000000000..51f5a3418 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1UDP__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/classo2_1_1monitoring_1_1transports_1_1UDP__coll__graph.md5 b/classo2_1_1monitoring_1_1transports_1_1UDP__coll__graph.md5 new file mode 100644 index 000000000..07380ed97 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1UDP__coll__graph.md5 @@ -0,0 +1 @@ +1c1f066816f11b26fc3bd470c1db6ff2 \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1transports_1_1UDP__coll__graph.svg b/classo2_1_1monitoring_1_1transports_1_1UDP__coll__graph.svg new file mode 100644 index 000000000..8fe97d10c --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1UDP__coll__graph.svg @@ -0,0 +1,43 @@ + + + + + + +o2::monitoring::transports::UDP + +Node1 + +o2::monitoring::transports::UDP + + + ++ UDP() ++ ~UDP() ++ send() + + +Node2 + + +o2::monitoring::transports +::TransportInterface + + + ++ TransportInterface() ++ ~TransportInterface() ++ send() + + + + +Node2->Node1 + + + + + diff --git a/classo2_1_1monitoring_1_1transports_1_1UDP__inherit__graph.dot b/classo2_1_1monitoring_1_1transports_1_1UDP__inherit__graph.dot new file mode 100644 index 000000000..59d92bf3a --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1UDP__inherit__graph.dot @@ -0,0 +1,10 @@ +digraph "o2::monitoring::transports::UDP" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="{o2::monitoring::transports::UDP\n||+ UDP()\l+ ~UDP()\l+ send()\l}",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; + Node2 [label="{o2::monitoring::transports\l::TransportInterface\n||+ TransportInterface()\l+ ~TransportInterface()\l+ send()\l}",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1transports_1_1TransportInterface.html",tooltip="Transport interface for backends. "]; +} diff --git a/classo2_1_1monitoring_1_1transports_1_1UDP__inherit__graph.map b/classo2_1_1monitoring_1_1transports_1_1UDP__inherit__graph.map new file mode 100644 index 000000000..51f5a3418 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1UDP__inherit__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/classo2_1_1monitoring_1_1transports_1_1UDP__inherit__graph.md5 b/classo2_1_1monitoring_1_1transports_1_1UDP__inherit__graph.md5 new file mode 100644 index 000000000..07380ed97 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1UDP__inherit__graph.md5 @@ -0,0 +1 @@ +1c1f066816f11b26fc3bd470c1db6ff2 \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1transports_1_1UDP__inherit__graph.svg b/classo2_1_1monitoring_1_1transports_1_1UDP__inherit__graph.svg new file mode 100644 index 000000000..8fe97d10c --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1UDP__inherit__graph.svg @@ -0,0 +1,43 @@ + + + + + + +o2::monitoring::transports::UDP + +Node1 + +o2::monitoring::transports::UDP + + + ++ UDP() ++ ~UDP() ++ send() + + +Node2 + + +o2::monitoring::transports +::TransportInterface + + + ++ TransportInterface() ++ ~TransportInterface() ++ send() + + + + +Node2->Node1 + + + + + diff --git a/classo2_1_1monitoring_1_1transports_1_1Unix-members.html b/classo2_1_1monitoring_1_1transports_1_1Unix-members.html new file mode 100644 index 000000000..72e640766 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1Unix-members.html @@ -0,0 +1,135 @@ + + + + + + +Monitoring: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
o2::monitoring::transports::Unix Member List
+
+
+ +

This is the complete list of members for o2::monitoring::transports::Unix, including all inherited members.

+ + + + + + +
send(std::string &&message) overrideo2::monitoring::transports::Unixvirtual
TransportInterface()=default (defined in o2::monitoring::transports::TransportInterface)o2::monitoring::transports::TransportInterface
Unix(const std::string &socketPath)o2::monitoring::transports::Unix
~TransportInterface()=default (defined in o2::monitoring::transports::TransportInterface)o2::monitoring::transports::TransportInterfacevirtual
~Unix()=defaulto2::monitoring::transports::Unix
+
+ + + + diff --git a/classo2_1_1monitoring_1_1transports_1_1Unix.html b/classo2_1_1monitoring_1_1transports_1_1Unix.html new file mode 100644 index 000000000..8c93ed283 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1Unix.html @@ -0,0 +1,222 @@ + + + + + + +Monitoring: o2::monitoring::transports::Unix Class Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
o2::monitoring::transports::Unix Class Reference
+
+
+ +

Transport that sends string formatted metrics via Unix datagram socket. + More...

+ +

#include <Unix.h>

+
+Inheritance diagram for o2::monitoring::transports::Unix:
+
+
+
+
+
+Collaboration diagram for o2::monitoring::transports::Unix:
+
+
+
+
+ + + + + + + + + +

+Public Member Functions

 Unix (const std::string &socketPath)
 
~Unix ()=default
 Default destructor.
 
void send (std::string &&message) override
 
+

Detailed Description

+

Transport that sends string formatted metrics via Unix datagram socket.

+

Constructor & Destructor Documentation

+ +
+
+ + + + + + + + +
o2::monitoring::transports::Unix::Unix (const std::string & socketPath)
+
+
Parameters
+ + + +
hostname
port
+
+
+ +
+
+

Member Function Documentation

+ +
+
+ + + + + +
+ + + + + + + + +
void o2::monitoring::transports::Unix::send (std::string && message)
+
+overridevirtual
+
+
Parameters
+ + +
messager-value string formated
+
+
+ +

Implements o2::monitoring::transports::TransportInterface.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • /home/travis/build/AliceO2Group/Monitoring/src/Transports/Unix.h
  • +
+
+
+ + + + diff --git a/classo2_1_1monitoring_1_1transports_1_1Unix.js b/classo2_1_1monitoring_1_1transports_1_1Unix.js new file mode 100644 index 000000000..21d686978 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1Unix.js @@ -0,0 +1,6 @@ +var classo2_1_1monitoring_1_1transports_1_1Unix = +[ + [ "Unix", "classo2_1_1monitoring_1_1transports_1_1Unix.html#ab8af9f31c79dfa72106149d5834a384a", null ], + [ "~Unix", "classo2_1_1monitoring_1_1transports_1_1Unix.html#af1eb4dc9c1610e56341fa4c000938bca", null ], + [ "send", "classo2_1_1monitoring_1_1transports_1_1Unix.html#a405790a04f260e815253a6e921d22af1", null ] +]; \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1transports_1_1Unix__coll__graph.dot b/classo2_1_1monitoring_1_1transports_1_1Unix__coll__graph.dot new file mode 100644 index 000000000..0c0c7c019 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1Unix__coll__graph.dot @@ -0,0 +1,10 @@ +digraph "o2::monitoring::transports::Unix" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="{o2::monitoring::transports\l::Unix\n||+ Unix()\l+ ~Unix()\l+ send()\l}",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; + Node2 [label="{o2::monitoring::transports\l::TransportInterface\n||+ TransportInterface()\l+ ~TransportInterface()\l+ send()\l}",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1transports_1_1TransportInterface.html",tooltip="Transport interface for backends. "]; +} diff --git a/classo2_1_1monitoring_1_1transports_1_1Unix__coll__graph.map b/classo2_1_1monitoring_1_1transports_1_1Unix__coll__graph.map new file mode 100644 index 000000000..87437c96e --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1Unix__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/classo2_1_1monitoring_1_1transports_1_1Unix__coll__graph.md5 b/classo2_1_1monitoring_1_1transports_1_1Unix__coll__graph.md5 new file mode 100644 index 000000000..7e1f9f9d1 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1Unix__coll__graph.md5 @@ -0,0 +1 @@ +059c438c3ba44d6f2db9ae8242ee7e3b \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1transports_1_1Unix__coll__graph.svg b/classo2_1_1monitoring_1_1transports_1_1Unix__coll__graph.svg new file mode 100644 index 000000000..8aae2cc2c --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1Unix__coll__graph.svg @@ -0,0 +1,44 @@ + + + + + + +o2::monitoring::transports::Unix + +Node1 + +o2::monitoring::transports +::Unix + + + ++ Unix() ++ ~Unix() ++ send() + + +Node2 + + +o2::monitoring::transports +::TransportInterface + + + ++ TransportInterface() ++ ~TransportInterface() ++ send() + + + + +Node2->Node1 + + + + + diff --git a/classo2_1_1monitoring_1_1transports_1_1Unix__inherit__graph.dot b/classo2_1_1monitoring_1_1transports_1_1Unix__inherit__graph.dot new file mode 100644 index 000000000..0c0c7c019 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1Unix__inherit__graph.dot @@ -0,0 +1,10 @@ +digraph "o2::monitoring::transports::Unix" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="{o2::monitoring::transports\l::Unix\n||+ Unix()\l+ ~Unix()\l+ send()\l}",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; + Node2 [label="{o2::monitoring::transports\l::TransportInterface\n||+ TransportInterface()\l+ ~TransportInterface()\l+ send()\l}",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1transports_1_1TransportInterface.html",tooltip="Transport interface for backends. "]; +} diff --git a/classo2_1_1monitoring_1_1transports_1_1Unix__inherit__graph.map b/classo2_1_1monitoring_1_1transports_1_1Unix__inherit__graph.map new file mode 100644 index 000000000..87437c96e --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1Unix__inherit__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/classo2_1_1monitoring_1_1transports_1_1Unix__inherit__graph.md5 b/classo2_1_1monitoring_1_1transports_1_1Unix__inherit__graph.md5 new file mode 100644 index 000000000..7e1f9f9d1 --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1Unix__inherit__graph.md5 @@ -0,0 +1 @@ +059c438c3ba44d6f2db9ae8242ee7e3b \ No newline at end of file diff --git a/classo2_1_1monitoring_1_1transports_1_1Unix__inherit__graph.svg b/classo2_1_1monitoring_1_1transports_1_1Unix__inherit__graph.svg new file mode 100644 index 000000000..8aae2cc2c --- /dev/null +++ b/classo2_1_1monitoring_1_1transports_1_1Unix__inherit__graph.svg @@ -0,0 +1,44 @@ + + + + + + +o2::monitoring::transports::Unix + +Node1 + +o2::monitoring::transports +::Unix + + + ++ Unix() ++ ~Unix() ++ send() + + +Node2 + + +o2::monitoring::transports +::TransportInterface + + + ++ TransportInterface() ++ ~TransportInterface() ++ send() + + + + +Node2->Node1 + + + + + diff --git a/closed.png b/closed.png new file mode 100644 index 000000000..98cc2c909 Binary files /dev/null and b/closed.png differ diff --git a/cmake/FindApMon.cmake b/cmake/FindApMon.cmake deleted file mode 100644 index 84d7ac798..000000000 --- a/cmake/FindApMon.cmake +++ /dev/null @@ -1,52 +0,0 @@ -# - Try to find ApMon include dirs and libraries -# Author: Barthelemy von Haller -# Author: Adam Wegrzynek -# -# This script will set the following variables: -# ApMon_FOUND - System has ApMon -# ApMon_INCLUDE_DIRS - The ApMon include directories -# ApMon_LIBRARIES - The libraries needed to use ApMon -# This script can use the following variables: -# APMON_ROOT - Installation root to tell this module where to look. -# This script defines following targets: -# ApMon::ApMon - -# Init -include(FindPackageHandleStandardArgs) - -# find includes -find_path(ApMon_INCLUDE_DIR ApMon.h - PATHS ${APMON_ROOT} - PATH_SUFFIXES include - NO_DEFAULT_PATH -) - -mark_as_advanced(ApMon_INCLUDE_DIR) - -# find library -find_library(ApMon_LIBRARY NAMES apmoncpp - PATHS ${APMON_ROOT} - PATH_SUFFIXES lib lib64 - NO_DEFAULT_PATH -) - -mark_as_advanced(ApMon_LIBRARY) - -# handle the QUIETLY and REQUIRED arguments and set ApMon_FOUND to TRUE -# if all listed variables are TRUE -find_package_handle_standard_args(ApMon "ApMon could not be found. Install package ApMon_cpp." - ApMon_LIBRARY ApMon_INCLUDE_DIR) - -if(ApMon_FOUND) - set(ApMon_LIBRARIES ${ApMon_LIBRARY}) - set(ApMon_INCLUDE_DIRS ${ApMon_INCLUDE_DIR}) - - # add target - if(NOT TARGET ApMon::ApMon) - add_library(ApMon::ApMon INTERFACE IMPORTED) - set_target_properties(ApMon::ApMon PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES "${ApMon_INCLUDE_DIRS}" - INTERFACE_LINK_LIBRARIES "${ApMon_LIBRARY}" - ) - endif() -endif() diff --git a/cmake/MonitoringConfig.cmake.in b/cmake/MonitoringConfig.cmake.in deleted file mode 100644 index 1ce0c4b97..000000000 --- a/cmake/MonitoringConfig.cmake.in +++ /dev/null @@ -1,19 +0,0 @@ -@PACKAGE_INIT@ - -set(Monitoring_VERSION @PROJECT_VERSION@) - -get_filename_component(Monitoring_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) -include(CMakeFindDependencyMacro) - -list(APPEND CMAKE_MODULE_PATH ${Monitoring_CMAKE_DIR}) -find_dependency(Boost) - -list(REMOVE_AT CMAKE_MODULE_PATH -1) - -if(NOT TARGET AliceO2::Monitoring) - include("${Monitoring_CMAKE_DIR}/MonitoringTargets.cmake") -endif() - -set(Monitoring_LIBRARIES AliceO2::Monitoring) - -message(STATUS "Monitoring ${Monitoring_VERSION} found") diff --git a/config/ApMon.conf b/config/ApMon.conf deleted file mode 100644 index 663fa0919..000000000 --- a/config/ApMon.conf +++ /dev/null @@ -1,16 +0,0 @@ -# the desired logging level (the possible values are FATAL, WARNING, INFO, FINE, DEBUG -xApMon_loglevel = FATAL - -# the destination hosts -#panther.rogrid.pub.ro:8884 -aido2mon-gpn.cern.ch:8884 - -# the configuration file will be checked for changes every 300s -xApMon_conf_recheck = on -xApMon_recheck_interval = 300 - -# the maximum number of messages that can be sent per second -xApMon_maxMsgRate = 100 - -# enable process monitoring -xApMon_job_monitoring = off diff --git a/dir_000000_000001.html b/dir_000000_000001.html new file mode 100644 index 000000000..4ce118355 --- /dev/null +++ b/dir_000000_000001.html @@ -0,0 +1,116 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/examples -> include Relation + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + +
+
+ +
+
+
+ + + + + + diff --git a/dir_000003_000001.html b/dir_000003_000001.html new file mode 100644 index 000000000..1f7474f30 --- /dev/null +++ b/dir_000003_000001.html @@ -0,0 +1,116 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src -> include Relation + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + +
+
+ +
+
+
+ + + + + + diff --git a/dir_000003_000004.html b/dir_000003_000004.html new file mode 100644 index 000000000..0a63e20d1 --- /dev/null +++ b/dir_000003_000004.html @@ -0,0 +1,116 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src -> Backends Relation + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+

src → Backends Relation

File in srcIncludes file in src/Backends
MonitoringFactory.cxxInfluxDB.h
MonitoringFactory.cxxNoop.h
+
+ + + + diff --git a/dir_000004_000001.html b/dir_000004_000001.html new file mode 100644 index 000000000..83926ed3a --- /dev/null +++ b/dir_000004_000001.html @@ -0,0 +1,116 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/Backends -> include Relation + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+

Backends → include Relation

File in src/BackendsIncludes file in include
ApMonBackend.hMonitoring / Backend.h
InfluxDB.hMonitoring / Backend.h
Noop.hMonitoring / Backend.h
StdOut.hMonitoring / Backend.h
+
+ + + + diff --git a/dir_000004_000005.html b/dir_000004_000005.html new file mode 100644 index 000000000..750860c8c --- /dev/null +++ b/dir_000004_000005.html @@ -0,0 +1,116 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/Backends -> Transports Relation + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+

Backends → Transports Relation

File in src/BackendsIncludes file in src/Transports
InfluxDB.hTransportInterface.h
+
+ + + + diff --git a/dir_000004_000006.html b/dir_000004_000006.html new file mode 100644 index 000000000..024ab79a3 --- /dev/null +++ b/dir_000004_000006.html @@ -0,0 +1,116 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/Backends -> Exceptions Relation + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+

Backends → Exceptions Relation

File in src/BackendsIncludes file in src/Exceptions
ApMonBackend.cxxMonitoringException.h
InfluxDB.cxxMonitoringException.h
+
+ + + + diff --git a/dir_000005_000006.html b/dir_000005_000006.html new file mode 100644 index 000000000..2a5520f52 --- /dev/null +++ b/dir_000005_000006.html @@ -0,0 +1,116 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/Transports -> Exceptions Relation + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+

Transports → Exceptions Relation

File in src/TransportsIncludes file in src/Exceptions
HTTP.cxxMonitoringException.h
TCP.cxxMonitoringException.h
+
+ + + + diff --git a/dir_000008_000001.html b/dir_000008_000001.html new file mode 100644 index 000000000..714b32322 --- /dev/null +++ b/dir_000008_000001.html @@ -0,0 +1,116 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/test -> include Relation + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+

test → include Relation

File in testIncludes file in include
testApMon.cxxMonitoring / MonitoringFactory.h
testDerived.cxxMonitoring / DerivedMetrics.h
testInfluxDb.cxxMonitoring / MonitoringFactory.h
testMetric.cxxMonitoring / Metric.h
testMonitoring.cxxMonitoring / MonitoringFactory.h
testMonitoringFactory.cxxMonitoring / MonitoringFactory.h
testProcessMonitor.cxxMonitoring / MonitoringFactory.h
testProcessMonitor.cxxMonitoring / ProcessMonitor.h
testThreads.cxxMonitoring / MonitoringFactory.h
+
+ + + + diff --git a/dir_000008_000003.html b/dir_000008_000003.html new file mode 100644 index 000000000..b3b3da78f --- /dev/null +++ b/dir_000008_000003.html @@ -0,0 +1,116 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/test -> src Relation + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+

test → src Relation

File in testIncludes file in src
testDerived.cxxExceptions / MonitoringException.h
testNoop.cxxBackends / Noop.h
testProcessDetails.cxxProcessDetails.h
+
+ + + + diff --git a/dir_0deade926bf5eba5a581165f192a0cb7.html b/dir_0deade926bf5eba5a581165f192a0cb7.html new file mode 100644 index 000000000..9cff35e98 --- /dev/null +++ b/dir_0deade926bf5eba5a581165f192a0cb7.html @@ -0,0 +1,158 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/Transports Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Transports Directory Reference
+
+
+
+Directory dependency graph for Transports:
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  HTTP.cxx
 
file  HTTP.h [code]
 
file  Kafka.cxx
 
file  Kafka.h [code]
 
file  TCP.cxx
 
file  TCP.h [code]
 
file  TransportInterface.h [code]
 
file  UDP.cxx
 
file  UDP.h [code]
 
file  Unix.cxx
 
file  Unix.h [code]
 
+
+
+ + + + diff --git a/dir_0deade926bf5eba5a581165f192a0cb7.js b/dir_0deade926bf5eba5a581165f192a0cb7.js new file mode 100644 index 000000000..406d7701a --- /dev/null +++ b/dir_0deade926bf5eba5a581165f192a0cb7.js @@ -0,0 +1,27 @@ +var dir_0deade926bf5eba5a581165f192a0cb7 = +[ + [ "HTTP.cxx", "HTTP_8cxx.html", null ], + [ "HTTP.h", "HTTP_8h.html", [ + [ "HTTP", "classo2_1_1monitoring_1_1transports_1_1HTTP.html", "classo2_1_1monitoring_1_1transports_1_1HTTP" ] + ] ], + [ "Kafka.cxx", "Kafka_8cxx.html", null ], + [ "Kafka.h", "Kafka_8h.html", [ + [ "Kafka", "classo2_1_1monitoring_1_1transports_1_1Kafka.html", "classo2_1_1monitoring_1_1transports_1_1Kafka" ] + ] ], + [ "StdOut.h", "Transports_2StdOut_8h_source.html", null ], + [ "TCP.cxx", "TCP_8cxx.html", null ], + [ "TCP.h", "TCP_8h.html", [ + [ "TCP", "classo2_1_1monitoring_1_1transports_1_1TCP.html", "classo2_1_1monitoring_1_1transports_1_1TCP" ] + ] ], + [ "TransportInterface.h", "TransportInterface_8h.html", [ + [ "TransportInterface", "classo2_1_1monitoring_1_1transports_1_1TransportInterface.html", "classo2_1_1monitoring_1_1transports_1_1TransportInterface" ] + ] ], + [ "UDP.cxx", "UDP_8cxx.html", null ], + [ "UDP.h", "UDP_8h.html", [ + [ "UDP", "classo2_1_1monitoring_1_1transports_1_1UDP.html", "classo2_1_1monitoring_1_1transports_1_1UDP" ] + ] ], + [ "Unix.cxx", "Unix_8cxx.html", null ], + [ "Unix.h", "Unix_8h.html", [ + [ "Unix", "classo2_1_1monitoring_1_1transports_1_1Unix.html", "classo2_1_1monitoring_1_1transports_1_1Unix" ] + ] ] +]; \ No newline at end of file diff --git a/dir_0deade926bf5eba5a581165f192a0cb7_dep.dot b/dir_0deade926bf5eba5a581165f192a0cb7_dep.dot new file mode 100644 index 000000000..9104d6da1 --- /dev/null +++ b/dir_0deade926bf5eba5a581165f192a0cb7_dep.dot @@ -0,0 +1,12 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/src/Transports" { + bgcolor=transparent; + compound=true + node [ fontsize="10", fontname="Helvetica"]; + edge [ labelfontsize="10", labelfontname="Helvetica"]; + subgraph clusterdir_68267d1309a1af8e8297ef4c3efbcdba { + graph [ bgcolor="#ddddee", pencolor="black", label="src" fontname="Helvetica", fontsize="10", URL="dir_68267d1309a1af8e8297ef4c3efbcdba.html"] + dir_0deade926bf5eba5a581165f192a0cb7 [shape=box, label="Transports", style="filled", fillcolor="#eeeeff", pencolor="black", URL="dir_0deade926bf5eba5a581165f192a0cb7.html"]; + } + dir_6bd92bd93c0d5d9980919215b46f20a3 [shape=box label="Exceptions" URL="dir_6bd92bd93c0d5d9980919215b46f20a3.html"]; + dir_0deade926bf5eba5a581165f192a0cb7->dir_6bd92bd93c0d5d9980919215b46f20a3 [headlabel="2", labeldistance=1.5 headhref="dir_000005_000006.html"]; +} diff --git a/dir_0deade926bf5eba5a581165f192a0cb7_dep.map b/dir_0deade926bf5eba5a581165f192a0cb7_dep.map new file mode 100644 index 000000000..a8fcf81c2 --- /dev/null +++ b/dir_0deade926bf5eba5a581165f192a0cb7_dep.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/dir_0deade926bf5eba5a581165f192a0cb7_dep.md5 b/dir_0deade926bf5eba5a581165f192a0cb7_dep.md5 new file mode 100644 index 000000000..61e96b995 --- /dev/null +++ b/dir_0deade926bf5eba5a581165f192a0cb7_dep.md5 @@ -0,0 +1 @@ +953bbe6d1cdb949bfc75ed9d2cca22a4 \ No newline at end of file diff --git a/dir_0deade926bf5eba5a581165f192a0cb7_dep.svg b/dir_0deade926bf5eba5a581165f192a0cb7_dep.svg new file mode 100644 index 000000000..aa875e2d7 --- /dev/null +++ b/dir_0deade926bf5eba5a581165f192a0cb7_dep.svg @@ -0,0 +1,44 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Transports +clusterdir_68267d1309a1af8e8297ef4c3efbcdba + + +src + + + + +dir_0deade926bf5eba5a581165f192a0cb7 + + +Transports + + + + +dir_6bd92bd93c0d5d9980919215b46f20a3 + + +Exceptions + + + + +dir_0deade926bf5eba5a581165f192a0cb7->dir_6bd92bd93c0d5d9980919215b46f20a3 + + + +2 + + + + + diff --git a/dir_0ef2299b76394279b5dd2f461c49e4a1.html b/dir_0ef2299b76394279b5dd2f461c49e4a1.html new file mode 100644 index 000000000..b30a2452b --- /dev/null +++ b/dir_0ef2299b76394279b5dd2f461c49e4a1.html @@ -0,0 +1,146 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/Backends Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Backends Directory Reference
+
+
+
+Directory dependency graph for Backends:
+
+
+
+
+ + + + + + + + + + + + +

+Files

file  ApMonBackend.cxx
 
file  ApMonBackend.h [code]
 
file  InfluxDB.cxx
 
file  InfluxDB.h [code]
 
file  Noop.h [code]
 
+
+
+ + + + diff --git a/dir_0ef2299b76394279b5dd2f461c49e4a1.js b/dir_0ef2299b76394279b5dd2f461c49e4a1.js new file mode 100644 index 000000000..13e9ba7be --- /dev/null +++ b/dir_0ef2299b76394279b5dd2f461c49e4a1.js @@ -0,0 +1,15 @@ +var dir_0ef2299b76394279b5dd2f461c49e4a1 = +[ + [ "ApMonBackend.cxx", "ApMonBackend_8cxx.html", "ApMonBackend_8cxx" ], + [ "ApMonBackend.h", "ApMonBackend_8h.html", [ + [ "ApMonBackend", "classo2_1_1monitoring_1_1backends_1_1ApMonBackend.html", "classo2_1_1monitoring_1_1backends_1_1ApMonBackend" ] + ] ], + [ "InfluxDB.cxx", "InfluxDB_8cxx.html", "InfluxDB_8cxx" ], + [ "InfluxDB.h", "InfluxDB_8h.html", [ + [ "InfluxDB", "classo2_1_1monitoring_1_1backends_1_1InfluxDB.html", "classo2_1_1monitoring_1_1backends_1_1InfluxDB" ] + ] ], + [ "Noop.h", "Noop_8h.html", [ + [ "Noop", "classo2_1_1monitoring_1_1backends_1_1Noop.html", "classo2_1_1monitoring_1_1backends_1_1Noop" ] + ] ], + [ "StdOut.h", "Backends_2StdOut_8h_source.html", null ] +]; \ No newline at end of file diff --git a/dir_0ef2299b76394279b5dd2f461c49e4a1_dep.dot b/dir_0ef2299b76394279b5dd2f461c49e4a1_dep.dot new file mode 100644 index 000000000..65ced3854 --- /dev/null +++ b/dir_0ef2299b76394279b5dd2f461c49e4a1_dep.dot @@ -0,0 +1,17 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/src/Backends" { + bgcolor=transparent; + compound=true + node [ fontsize="10", fontname="Helvetica"]; + edge [ labelfontsize="10", labelfontname="Helvetica"]; + subgraph clusterdir_68267d1309a1af8e8297ef4c3efbcdba { + graph [ bgcolor="#ddddee", pencolor="black", label="src" fontname="Helvetica", fontsize="10", URL="dir_68267d1309a1af8e8297ef4c3efbcdba.html"] + dir_0ef2299b76394279b5dd2f461c49e4a1 [shape=box, label="Backends", style="filled", fillcolor="#eeeeff", pencolor="black", URL="dir_0ef2299b76394279b5dd2f461c49e4a1.html"]; + } + dir_d44c64559bbebec7f509842c48db8b23 [shape=box label="include" color="red" URL="dir_d44c64559bbebec7f509842c48db8b23.html"]; + dir_6bd92bd93c0d5d9980919215b46f20a3 [shape=box label="Exceptions" URL="dir_6bd92bd93c0d5d9980919215b46f20a3.html"]; + dir_0deade926bf5eba5a581165f192a0cb7 [shape=box label="Transports" URL="dir_0deade926bf5eba5a581165f192a0cb7.html"]; + dir_0ef2299b76394279b5dd2f461c49e4a1->dir_d44c64559bbebec7f509842c48db8b23 [headlabel="4", labeldistance=1.5 headhref="dir_000004_000001.html"]; + dir_0ef2299b76394279b5dd2f461c49e4a1->dir_6bd92bd93c0d5d9980919215b46f20a3 [headlabel="2", labeldistance=1.5 headhref="dir_000004_000006.html"]; + dir_0ef2299b76394279b5dd2f461c49e4a1->dir_0deade926bf5eba5a581165f192a0cb7 [headlabel="1", labeldistance=1.5 headhref="dir_000004_000005.html"]; + dir_0deade926bf5eba5a581165f192a0cb7->dir_6bd92bd93c0d5d9980919215b46f20a3 [headlabel="2", labeldistance=1.5 headhref="dir_000005_000006.html"]; +} diff --git a/dir_0ef2299b76394279b5dd2f461c49e4a1_dep.map b/dir_0ef2299b76394279b5dd2f461c49e4a1_dep.map new file mode 100644 index 000000000..279221fb9 --- /dev/null +++ b/dir_0ef2299b76394279b5dd2f461c49e4a1_dep.map @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/dir_0ef2299b76394279b5dd2f461c49e4a1_dep.md5 b/dir_0ef2299b76394279b5dd2f461c49e4a1_dep.md5 new file mode 100644 index 000000000..ec5dc1d16 --- /dev/null +++ b/dir_0ef2299b76394279b5dd2f461c49e4a1_dep.md5 @@ -0,0 +1 @@ +9e2cb99511fc58876abd86d2a590e086 \ No newline at end of file diff --git a/dir_0ef2299b76394279b5dd2f461c49e4a1_dep.svg b/dir_0ef2299b76394279b5dd2f461c49e4a1_dep.svg new file mode 100644 index 000000000..5f6ddfa26 --- /dev/null +++ b/dir_0ef2299b76394279b5dd2f461c49e4a1_dep.svg @@ -0,0 +1,87 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Backends +clusterdir_68267d1309a1af8e8297ef4c3efbcdba + + +src + + + + +dir_0ef2299b76394279b5dd2f461c49e4a1 + + +Backends + + + + +dir_d44c64559bbebec7f509842c48db8b23 + + +include + + + + +dir_0ef2299b76394279b5dd2f461c49e4a1->dir_d44c64559bbebec7f509842c48db8b23 + + + +4 + + + + +dir_6bd92bd93c0d5d9980919215b46f20a3 + + +Exceptions + + + + +dir_0ef2299b76394279b5dd2f461c49e4a1->dir_6bd92bd93c0d5d9980919215b46f20a3 + + + +2 + + + + +dir_0deade926bf5eba5a581165f192a0cb7 + + +Transports + + + + +dir_0ef2299b76394279b5dd2f461c49e4a1->dir_0deade926bf5eba5a581165f192a0cb7 + + + +1 + + + + +dir_0deade926bf5eba5a581165f192a0cb7->dir_6bd92bd93c0d5d9980919215b46f20a3 + + + +2 + + + + + diff --git a/dir_13e138d54eb8818da29c3992edef070a.html b/dir_13e138d54eb8818da29c3992edef070a.html new file mode 100644 index 000000000..9e595916c --- /dev/null +++ b/dir_13e138d54eb8818da29c3992edef070a.html @@ -0,0 +1,136 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/test Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
test Directory Reference
+
+
+
+Directory dependency graph for test:
+
+
+
+
+ + +

+Files

+
+
+ + + + diff --git a/dir_13e138d54eb8818da29c3992edef070a_dep.dot b/dir_13e138d54eb8818da29c3992edef070a_dep.dot new file mode 100644 index 000000000..48488b953 --- /dev/null +++ b/dir_13e138d54eb8818da29c3992edef070a_dep.dot @@ -0,0 +1,12 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/test" { + bgcolor=transparent; + compound=true + node [ fontsize="10", fontname="Helvetica"]; + edge [ labelfontsize="10", labelfontname="Helvetica"]; + dir_13e138d54eb8818da29c3992edef070a [shape=box, label="test", style="filled", fillcolor="#eeeeff", pencolor="black", URL="dir_13e138d54eb8818da29c3992edef070a.html"]; + dir_68267d1309a1af8e8297ef4c3efbcdba [shape=box label="src" color="red" URL="dir_68267d1309a1af8e8297ef4c3efbcdba.html"]; + dir_d44c64559bbebec7f509842c48db8b23 [shape=box label="include" color="red" URL="dir_d44c64559bbebec7f509842c48db8b23.html"]; + dir_68267d1309a1af8e8297ef4c3efbcdba->dir_d44c64559bbebec7f509842c48db8b23 [headlabel="9", labeldistance=1.5 headhref="dir_000003_000001.html"]; + dir_13e138d54eb8818da29c3992edef070a->dir_68267d1309a1af8e8297ef4c3efbcdba [headlabel="3", labeldistance=1.5 headhref="dir_000008_000003.html"]; + dir_13e138d54eb8818da29c3992edef070a->dir_d44c64559bbebec7f509842c48db8b23 [headlabel="9", labeldistance=1.5 headhref="dir_000008_000001.html"]; +} diff --git a/dir_13e138d54eb8818da29c3992edef070a_dep.map b/dir_13e138d54eb8818da29c3992edef070a_dep.map new file mode 100644 index 000000000..a6b2c6ba5 --- /dev/null +++ b/dir_13e138d54eb8818da29c3992edef070a_dep.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/dir_13e138d54eb8818da29c3992edef070a_dep.md5 b/dir_13e138d54eb8818da29c3992edef070a_dep.md5 new file mode 100644 index 000000000..802f1be92 --- /dev/null +++ b/dir_13e138d54eb8818da29c3992edef070a_dep.md5 @@ -0,0 +1 @@ +db0002ad50cbd846d6992fb7a17c4397 \ No newline at end of file diff --git a/dir_13e138d54eb8818da29c3992edef070a_dep.svg b/dir_13e138d54eb8818da29c3992edef070a_dep.svg new file mode 100644 index 000000000..2a69dbeed --- /dev/null +++ b/dir_13e138d54eb8818da29c3992edef070a_dep.svg @@ -0,0 +1,63 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/test + +dir_13e138d54eb8818da29c3992edef070a + + +test + + + + +dir_68267d1309a1af8e8297ef4c3efbcdba + + +src + + + + +dir_13e138d54eb8818da29c3992edef070a->dir_68267d1309a1af8e8297ef4c3efbcdba + + + +3 + + + + +dir_d44c64559bbebec7f509842c48db8b23 + + +include + + + + +dir_13e138d54eb8818da29c3992edef070a->dir_d44c64559bbebec7f509842c48db8b23 + + + +9 + + + + +dir_68267d1309a1af8e8297ef4c3efbcdba->dir_d44c64559bbebec7f509842c48db8b23 + + + +9 + + + + + diff --git a/dir_4f47874a81d3795c62c16083473126b9.html b/dir_4f47874a81d3795c62c16083473126b9.html new file mode 100644 index 000000000..ab8188632 --- /dev/null +++ b/dir_4f47874a81d3795c62c16083473126b9.html @@ -0,0 +1,130 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/UriParser Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
UriParser Directory Reference
+
+
+ + +

+Files

+
+
+ + + + diff --git a/dir_4f47874a81d3795c62c16083473126b9.js b/dir_4f47874a81d3795c62c16083473126b9.js new file mode 100644 index 000000000..9a7e6e397 --- /dev/null +++ b/dir_4f47874a81d3795c62c16083473126b9.js @@ -0,0 +1,4 @@ +var dir_4f47874a81d3795c62c16083473126b9 = +[ + [ "UriParser.h", "UriParser_8h_source.html", null ] +]; \ No newline at end of file diff --git a/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/dir_68267d1309a1af8e8297ef4c3efbcdba.html new file mode 100644 index 000000000..e77b2bceb --- /dev/null +++ b/dir_68267d1309a1af8e8297ef4c3efbcdba.html @@ -0,0 +1,155 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
src Directory Reference
+
+
+
+Directory dependency graph for src:
+
+
+
+
+ + +

+Directories

+ + + + + + + + + + + + + + + + + +

+Files

file  DerivedMetrics.cxx
 
file  Metric.cxx
 
file  Monitoring.cxx
 
file  MonitoringFactory.cxx
 
file  MonLogger.h [code]
 
file  ProcessDetails.cxx
 
file  ProcessDetails.h [code]
 
file  ProcessMonitor.cxx
 
+
+
+ + + + diff --git a/dir_68267d1309a1af8e8297ef4c3efbcdba.js b/dir_68267d1309a1af8e8297ef4c3efbcdba.js new file mode 100644 index 000000000..4852c5cd0 --- /dev/null +++ b/dir_68267d1309a1af8e8297ef4c3efbcdba.js @@ -0,0 +1,19 @@ +var dir_68267d1309a1af8e8297ef4c3efbcdba = +[ + [ "Backends", "dir_0ef2299b76394279b5dd2f461c49e4a1.html", "dir_0ef2299b76394279b5dd2f461c49e4a1" ], + [ "Exceptions", "dir_6bd92bd93c0d5d9980919215b46f20a3.html", "dir_6bd92bd93c0d5d9980919215b46f20a3" ], + [ "Transports", "dir_0deade926bf5eba5a581165f192a0cb7.html", "dir_0deade926bf5eba5a581165f192a0cb7" ], + [ "UriParser", "dir_4f47874a81d3795c62c16083473126b9.html", "dir_4f47874a81d3795c62c16083473126b9" ], + [ "DerivedMetrics.cxx", "DerivedMetrics_8cxx.html", "DerivedMetrics_8cxx" ], + [ "Metric.cxx", "Metric_8cxx.html", null ], + [ "Monitoring.cxx", "Monitoring_8cxx.html", null ], + [ "MonitoringFactory.cxx", "MonitoringFactory_8cxx.html", "MonitoringFactory_8cxx" ], + [ "MonLogger.h", "MonLogger_8h.html", "MonLogger_8h" ], + [ "ProcessDetails.cxx", "ProcessDetails_8cxx.html", null ], + [ "ProcessDetails.h", "ProcessDetails_8h.html", [ + [ "ProcessDetails", "classo2_1_1monitoring_1_1ProcessDetails.html", "classo2_1_1monitoring_1_1ProcessDetails" ] + ] ], + [ "ProcessMonitor.cxx", "ProcessMonitor_8cxx.html", null ], + [ "VariantVisitorAdd.h", "VariantVisitorAdd_8h_source.html", null ], + [ "VariantVisitorRate.h", "VariantVisitorRate_8h_source.html", null ] +]; \ No newline at end of file diff --git a/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.dot b/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.dot new file mode 100644 index 000000000..58ed34979 --- /dev/null +++ b/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.dot @@ -0,0 +1,20 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/src" { + bgcolor=transparent; + compound=true + node [ fontsize="10", fontname="Helvetica"]; + edge [ labelfontsize="10", labelfontname="Helvetica"]; + subgraph clusterdir_68267d1309a1af8e8297ef4c3efbcdba { + graph [ bgcolor="#eeeeff", pencolor="black", label="" URL="dir_68267d1309a1af8e8297ef4c3efbcdba.html"]; + dir_68267d1309a1af8e8297ef4c3efbcdba [shape=plaintext label="src"]; + dir_0ef2299b76394279b5dd2f461c49e4a1 [shape=box label="Backends" color="black" fillcolor="white" style="filled" URL="dir_0ef2299b76394279b5dd2f461c49e4a1.html"]; + dir_6bd92bd93c0d5d9980919215b46f20a3 [shape=box label="Exceptions" color="black" fillcolor="white" style="filled" URL="dir_6bd92bd93c0d5d9980919215b46f20a3.html"]; + dir_0deade926bf5eba5a581165f192a0cb7 [shape=box label="Transports" color="black" fillcolor="white" style="filled" URL="dir_0deade926bf5eba5a581165f192a0cb7.html"]; + dir_4f47874a81d3795c62c16083473126b9 [shape=box label="UriParser" color="black" fillcolor="white" style="filled" URL="dir_4f47874a81d3795c62c16083473126b9.html"]; + } + dir_d44c64559bbebec7f509842c48db8b23 [shape=box label="include" color="red" URL="dir_d44c64559bbebec7f509842c48db8b23.html"]; + dir_0ef2299b76394279b5dd2f461c49e4a1->dir_d44c64559bbebec7f509842c48db8b23 [headlabel="4", labeldistance=1.5 headhref="dir_000004_000001.html"]; + dir_0ef2299b76394279b5dd2f461c49e4a1->dir_6bd92bd93c0d5d9980919215b46f20a3 [headlabel="2", labeldistance=1.5 headhref="dir_000004_000006.html"]; + dir_0ef2299b76394279b5dd2f461c49e4a1->dir_0deade926bf5eba5a581165f192a0cb7 [headlabel="1", labeldistance=1.5 headhref="dir_000004_000005.html"]; + dir_68267d1309a1af8e8297ef4c3efbcdba->dir_0ef2299b76394279b5dd2f461c49e4a1 [headlabel="2", labeldistance=1.5 headhref="dir_000003_000004.html"]; + dir_0deade926bf5eba5a581165f192a0cb7->dir_6bd92bd93c0d5d9980919215b46f20a3 [headlabel="2", labeldistance=1.5 headhref="dir_000005_000006.html"]; +} diff --git a/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.map b/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.map new file mode 100644 index 000000000..09f1d99f9 --- /dev/null +++ b/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.map @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5 b/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5 new file mode 100644 index 000000000..29aa0f0cb --- /dev/null +++ b/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5 @@ -0,0 +1 @@ +9970f77ae90218d17f4b7ee054be4a55 \ No newline at end of file diff --git a/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.svg b/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.svg new file mode 100644 index 000000000..2ca49082a --- /dev/null +++ b/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.svg @@ -0,0 +1,107 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src +clusterdir_68267d1309a1af8e8297ef4c3efbcdba + + + + + + +dir_68267d1309a1af8e8297ef4c3efbcdba +src + + +dir_0ef2299b76394279b5dd2f461c49e4a1 + + +Backends + + + + +dir_68267d1309a1af8e8297ef4c3efbcdba->dir_0ef2299b76394279b5dd2f461c49e4a1 + + + +2 + + + + +dir_6bd92bd93c0d5d9980919215b46f20a3 + + +Exceptions + + + + +dir_0ef2299b76394279b5dd2f461c49e4a1->dir_6bd92bd93c0d5d9980919215b46f20a3 + + + +2 + + + + +dir_0deade926bf5eba5a581165f192a0cb7 + + +Transports + + + + +dir_0ef2299b76394279b5dd2f461c49e4a1->dir_0deade926bf5eba5a581165f192a0cb7 + + + +1 + + + + +dir_d44c64559bbebec7f509842c48db8b23 + + +include + + + + +dir_0ef2299b76394279b5dd2f461c49e4a1->dir_d44c64559bbebec7f509842c48db8b23 + + + +4 + + + + +dir_0deade926bf5eba5a581165f192a0cb7->dir_6bd92bd93c0d5d9980919215b46f20a3 + + + +2 + + + + +dir_4f47874a81d3795c62c16083473126b9 + + +UriParser + + + + + diff --git a/dir_6bd92bd93c0d5d9980919215b46f20a3.html b/dir_6bd92bd93c0d5d9980919215b46f20a3.html new file mode 100644 index 000000000..a499b7bd0 --- /dev/null +++ b/dir_6bd92bd93c0d5d9980919215b46f20a3.html @@ -0,0 +1,140 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/src/Exceptions Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Exceptions Directory Reference
+
+
+
+Directory dependency graph for Exceptions:
+
+
+
+
+ + + + + + +

+Files

file  MonitoringException.cxx
 
file  MonitoringException.h [code]
 
+
+
+ + + + diff --git a/dir_6bd92bd93c0d5d9980919215b46f20a3.js b/dir_6bd92bd93c0d5d9980919215b46f20a3.js new file mode 100644 index 000000000..409c6b4ce --- /dev/null +++ b/dir_6bd92bd93c0d5d9980919215b46f20a3.js @@ -0,0 +1,7 @@ +var dir_6bd92bd93c0d5d9980919215b46f20a3 = +[ + [ "MonitoringException.cxx", "MonitoringException_8cxx.html", null ], + [ "MonitoringException.h", "MonitoringException_8h.html", [ + [ "MonitoringException", "classo2_1_1monitoring_1_1MonitoringException.html", "classo2_1_1monitoring_1_1MonitoringException" ] + ] ] +]; \ No newline at end of file diff --git a/dir_6bd92bd93c0d5d9980919215b46f20a3_dep.dot b/dir_6bd92bd93c0d5d9980919215b46f20a3_dep.dot new file mode 100644 index 000000000..9d799dfd4 --- /dev/null +++ b/dir_6bd92bd93c0d5d9980919215b46f20a3_dep.dot @@ -0,0 +1,10 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/src/Exceptions" { + bgcolor=transparent; + compound=true + node [ fontsize="10", fontname="Helvetica"]; + edge [ labelfontsize="10", labelfontname="Helvetica"]; + subgraph clusterdir_68267d1309a1af8e8297ef4c3efbcdba { + graph [ bgcolor="#ddddee", pencolor="black", label="src" fontname="Helvetica", fontsize="10", URL="dir_68267d1309a1af8e8297ef4c3efbcdba.html"] + dir_6bd92bd93c0d5d9980919215b46f20a3 [shape=box, label="Exceptions", style="filled", fillcolor="#eeeeff", pencolor="black", URL="dir_6bd92bd93c0d5d9980919215b46f20a3.html"]; + } +} diff --git a/dir_6bd92bd93c0d5d9980919215b46f20a3_dep.map b/dir_6bd92bd93c0d5d9980919215b46f20a3_dep.map new file mode 100644 index 000000000..1aa4f120b --- /dev/null +++ b/dir_6bd92bd93c0d5d9980919215b46f20a3_dep.map @@ -0,0 +1,4 @@ + + + + diff --git a/dir_6bd92bd93c0d5d9980919215b46f20a3_dep.md5 b/dir_6bd92bd93c0d5d9980919215b46f20a3_dep.md5 new file mode 100644 index 000000000..fd2273ada --- /dev/null +++ b/dir_6bd92bd93c0d5d9980919215b46f20a3_dep.md5 @@ -0,0 +1 @@ +a6110a18cfa1aa246a8ebb0a31f185f3 \ No newline at end of file diff --git a/dir_6bd92bd93c0d5d9980919215b46f20a3_dep.svg b/dir_6bd92bd93c0d5d9980919215b46f20a3_dep.svg new file mode 100644 index 000000000..2131c66f1 --- /dev/null +++ b/dir_6bd92bd93c0d5d9980919215b46f20a3_dep.svg @@ -0,0 +1,27 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/src/Exceptions +clusterdir_68267d1309a1af8e8297ef4c3efbcdba + + +src + + + + +dir_6bd92bd93c0d5d9980919215b46f20a3 + + +Exceptions + + + + + diff --git a/dir_d28a4824dc47e487b107a5db32ef43c4.html b/dir_d28a4824dc47e487b107a5db32ef43c4.html new file mode 100644 index 000000000..acfe09abb --- /dev/null +++ b/dir_d28a4824dc47e487b107a5db32ef43c4.html @@ -0,0 +1,150 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/examples Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
examples Directory Reference
+
+
+
+Directory dependency graph for examples:
+
+
+
+
+ + + + + + + + + + + + + + + + +

+Files

file  1-Basic.cxx
 
file  10-Buffering.cxx
 
file  2-TaggedMetrics.cxx
 
file  4-RateDerivedMetric.cxx
 
file  5-Benchmark.cxx
 
file  6-Increment.cxx
 
file  8-DbFiller.cxx
 
+
+
+ + + + diff --git a/dir_d28a4824dc47e487b107a5db32ef43c4.js b/dir_d28a4824dc47e487b107a5db32ef43c4.js new file mode 100644 index 000000000..7ddae3292 --- /dev/null +++ b/dir_d28a4824dc47e487b107a5db32ef43c4.js @@ -0,0 +1,10 @@ +var dir_d28a4824dc47e487b107a5db32ef43c4 = +[ + [ "1-Basic.cxx", "1-Basic_8cxx.html", "1-Basic_8cxx" ], + [ "10-Buffering.cxx", "10-Buffering_8cxx.html", "10-Buffering_8cxx" ], + [ "2-TaggedMetrics.cxx", "2-TaggedMetrics_8cxx.html", "2-TaggedMetrics_8cxx" ], + [ "4-RateDerivedMetric.cxx", "4-RateDerivedMetric_8cxx.html", "4-RateDerivedMetric_8cxx" ], + [ "5-Benchmark.cxx", "5-Benchmark_8cxx.html", "5-Benchmark_8cxx" ], + [ "6-Increment.cxx", "6-Increment_8cxx.html", "6-Increment_8cxx" ], + [ "8-DbFiller.cxx", "8-DbFiller_8cxx.html", "8-DbFiller_8cxx" ] +]; \ No newline at end of file diff --git a/dir_d28a4824dc47e487b107a5db32ef43c4_dep.dot b/dir_d28a4824dc47e487b107a5db32ef43c4_dep.dot new file mode 100644 index 000000000..89eaeb72a --- /dev/null +++ b/dir_d28a4824dc47e487b107a5db32ef43c4_dep.dot @@ -0,0 +1,9 @@ +digraph "/home/travis/build/AliceO2Group/Monitoring/examples" { + bgcolor=transparent; + compound=true + node [ fontsize="10", fontname="Helvetica"]; + edge [ labelfontsize="10", labelfontname="Helvetica"]; + dir_d28a4824dc47e487b107a5db32ef43c4 [shape=box, label="examples", style="filled", fillcolor="#eeeeff", pencolor="black", URL="dir_d28a4824dc47e487b107a5db32ef43c4.html"]; + dir_d44c64559bbebec7f509842c48db8b23 [shape=box label="include" color="red" URL="dir_d44c64559bbebec7f509842c48db8b23.html"]; + dir_d28a4824dc47e487b107a5db32ef43c4->dir_d44c64559bbebec7f509842c48db8b23 [headlabel="9", labeldistance=1.5 headhref="dir_000000_000001.html"]; +} diff --git a/dir_d28a4824dc47e487b107a5db32ef43c4_dep.map b/dir_d28a4824dc47e487b107a5db32ef43c4_dep.map new file mode 100644 index 000000000..6d6865b7a --- /dev/null +++ b/dir_d28a4824dc47e487b107a5db32ef43c4_dep.map @@ -0,0 +1,5 @@ + + + + + diff --git a/dir_d28a4824dc47e487b107a5db32ef43c4_dep.md5 b/dir_d28a4824dc47e487b107a5db32ef43c4_dep.md5 new file mode 100644 index 000000000..35726ef49 --- /dev/null +++ b/dir_d28a4824dc47e487b107a5db32ef43c4_dep.md5 @@ -0,0 +1 @@ +e2d2c239778d3700ad3fb6ff9043cb2f \ No newline at end of file diff --git a/dir_d28a4824dc47e487b107a5db32ef43c4_dep.svg b/dir_d28a4824dc47e487b107a5db32ef43c4_dep.svg new file mode 100644 index 000000000..1560121f4 --- /dev/null +++ b/dir_d28a4824dc47e487b107a5db32ef43c4_dep.svg @@ -0,0 +1,37 @@ + + + + + + +/home/travis/build/AliceO2Group/Monitoring/examples + +dir_d28a4824dc47e487b107a5db32ef43c4 + + +examples + + + + +dir_d44c64559bbebec7f509842c48db8b23 + + +include + + + + +dir_d28a4824dc47e487b107a5db32ef43c4->dir_d44c64559bbebec7f509842c48db8b23 + + + +9 + + + + + diff --git a/dir_d44c64559bbebec7f509842c48db8b23.html b/dir_d44c64559bbebec7f509842c48db8b23.html new file mode 100644 index 000000000..efbdee1ce --- /dev/null +++ b/dir_d44c64559bbebec7f509842c48db8b23.html @@ -0,0 +1,130 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/include Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
include Directory Reference
+
+
+ + +

+Directories

+
+
+ + + + diff --git a/dir_d44c64559bbebec7f509842c48db8b23.js b/dir_d44c64559bbebec7f509842c48db8b23.js new file mode 100644 index 000000000..e53c89c4a --- /dev/null +++ b/dir_d44c64559bbebec7f509842c48db8b23.js @@ -0,0 +1,4 @@ +var dir_d44c64559bbebec7f509842c48db8b23 = +[ + [ "Monitoring", "dir_f146535c140623ec1d7301493a7e6986.html", "dir_f146535c140623ec1d7301493a7e6986" ] +]; \ No newline at end of file diff --git a/dir_f146535c140623ec1d7301493a7e6986.html b/dir_f146535c140623ec1d7301493a7e6986.html new file mode 100644 index 000000000..f162d8e45 --- /dev/null +++ b/dir_f146535c140623ec1d7301493a7e6986.html @@ -0,0 +1,144 @@ + + + + + + +Monitoring: /home/travis/build/AliceO2Group/Monitoring/include/Monitoring Directory Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Monitoring Directory Reference
+
+
+ + + + + + + + + + + + + + + + +

+Files

file  Backend.h [code]
 
file  DerivedMetrics.h [code]
 
file  Metric.h [code]
 
file  Monitoring.h [code]
 
file  MonitoringFactory.h [code]
 
file  ProcessMonitor.h [code]
 
file  Tags.h [code]
 
+
+
+ + + + diff --git a/dir_f146535c140623ec1d7301493a7e6986.js b/dir_f146535c140623ec1d7301493a7e6986.js new file mode 100644 index 000000000..e647df863 --- /dev/null +++ b/dir_f146535c140623ec1d7301493a7e6986.js @@ -0,0 +1,18 @@ +var dir_f146535c140623ec1d7301493a7e6986 = +[ + [ "Backend.h", "Backend_8h.html", [ + [ "Backend", "classo2_1_1monitoring_1_1Backend.html", "classo2_1_1monitoring_1_1Backend" ] + ] ], + [ "DerivedMetrics.h", "DerivedMetrics_8h.html", "DerivedMetrics_8h" ], + [ "Metric.h", "Metric_8h.html", "Metric_8h" ], + [ "Monitoring.h", "Monitoring_8h.html", [ + [ "Monitoring", "classo2_1_1monitoring_1_1Monitoring.html", "classo2_1_1monitoring_1_1Monitoring" ] + ] ], + [ "MonitoringFactory.h", "MonitoringFactory_8h.html", [ + [ "MonitoringFactory", "classo2_1_1monitoring_1_1MonitoringFactory.html", "classo2_1_1monitoring_1_1MonitoringFactory" ] + ] ], + [ "ProcessMonitor.h", "ProcessMonitor_8h.html", [ + [ "ProcessMonitor", "classo2_1_1monitoring_1_1ProcessMonitor.html", "classo2_1_1monitoring_1_1ProcessMonitor" ] + ] ], + [ "Tags.h", "Tags_8h.html", "Tags_8h" ] +]; \ No newline at end of file diff --git a/doc.png b/doc.png new file mode 100644 index 000000000..17edabff9 Binary files /dev/null and b/doc.png differ diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt deleted file mode 100644 index c54df5872..000000000 --- a/doc/CMakeLists.txt +++ /dev/null @@ -1,59 +0,0 @@ -# @author Barthélémy von Haller -# @author Adam Wegrzynek -# @author Sylvain Chapeland - -# define doc build path -set(DOC_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}/doc-build") - -# define doc installation path -# ensures it ends with project name -if (NOT CMAKE_INSTALL_DOCDIR) - set(CMAKE_INSTALL_DOCDIR "doc") -endif() -if (NOT "${CMAKE_INSTALL_DOCDIR}" MATCHES "${PROJECT_NAME}$") - set(CMAKE_INSTALL_DOCDIR "${CMAKE_INSTALL_DOCDIR}/${PROJECT_NAME}") -endif() - -# log doc build/install paths -message(STATUS "Documentation will be built in ${DOC_BUILD_DIR}") -message(STATUS "Documentation will be installed in ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DOCDIR}") - -# doxygen-generated doc -find_package(Doxygen OPTIONAL_COMPONENTS dot) -if (DOXYGEN_FOUND) - set(DOXYGEN_USE_MDFILE_AS_MAINPAGE "${CMAKE_SOURCE_DIR}/README.md") - set(DOXYGEN_PROJECT_LOGO "${CMAKE_SOURCE_DIR}/doc/images/o2_logo.png") - set(DOXYGEN_GENERATE_TREEVIEW YES) - set(DOXYGEN_HIDE_UNDOC_RELATIONS NO) - set(DOXYGEN_HAVE_DOT YES) - set(DOXYGEN_DOT_NUM_THREADS 1) - set(DOXYGEN_UML_LOOK YES) - set(DOXYGEN_UML_LIMIT_NUM_FIELDS 50) - set(DOXYGEN_TEMPLATE_RELATIONS YES) - set(DOXYGEN_DOT_IMAGE_FORMAT svg) - set(DOXYGEN_INTERACTIVE_SVG YES) - set(DOXYGEN_DOT_GRAPH_MAX_NODES 100) - set(DOXYGEN_DOT_TRANSPARENT YES) - set(DOXYGEN_OUTPUT_DIRECTORY ${DOC_BUILD_DIR}) - - doxygen_add_docs(doc - ${CMAKE_SOURCE_DIR} - COMMENT "Generating doxygen documentation for ${PROJECT_NAME}" - ) - - # install generated files - install( - DIRECTORY ${DOC_BUILD_DIR}/html - TYPE DOC - OPTIONAL # because available only after "make doc" - ) - -endif (DOXYGEN_FOUND) - - -# if needed add other doc files from source tree -# install( -# DIRECTORY . -# TYPE DOC -# FILES_MATCHING PATTERN "*.md" "*.png" -#) diff --git a/doxygen.css b/doxygen.css new file mode 100644 index 000000000..1425ec530 --- /dev/null +++ b/doxygen.css @@ -0,0 +1,1475 @@ +/* The standard CSS for doxygen 1.8.11 */ + +body, table, div, p, dl { + font: 400 14px/22px Roboto,sans-serif; +} + +/* @group Heading Levels */ + +h1.groupheader { + font-size: 150%; +} + +.title { + font: 400 14px/28px Roboto,sans-serif; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2.groupheader { + border-bottom: 1px solid #879ECB; + color: #354C7B; + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +div.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.qindex, div.navtab{ + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; +} + +div.qindex, div.navpath { + width: 100%; + line-height: 140%; +} + +div.navtab { + margin-right: 15px; +} + +/* @group Link Styling */ + +a { + color: #3D578C; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4665A2; +} + +a:hover { + text-decoration: underline; +} + +a.qindex { + font-weight: bold; +} + +a.qindexHL { + font-weight: bold; + background-color: #9CAFD4; + color: #ffffff; + border: 1px double #869DCA; +} + +.contents a.qindexHL:visited { + color: #ffffff; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 4px 6px; + margin: 4px 8px 4px 2px; + background-color: #FBFCFD; + border: 1px solid #C4CFE5; +} + +div.line { + font-family: monospace, fixed; + font-size: 13px; + min-height: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: cyan; + box-shadow: 0 0 10px cyan; +} + + +span.lineno { + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +div.ah, span.ah { + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +td.indexkey { + background-color: #EBEFF6; + font-weight: bold; + border: 1px solid #C4CFE5; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C4CFE5; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #EEF1F7; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F7F8FB; + border-left: 2px solid #9CAFD4; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A3B4D7; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4A6AAA; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memSeparator { + border-bottom: 1px solid #DEE4F0; + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight { + width: 100%; +} + +.memTemplParams { + color: #4665A2; + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtemplate { + font-size: 80%; + color: #4665A2; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: bold; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 0px 6px 0px; + color: #253555; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + border-top-left-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + -moz-border-radius-topleft: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + -webkit-border-top-left-radius: 4px; + +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 10px 2px 10px; + background-color: #FBFCFD; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #728DC1; + border-top:1px solid #5373B4; + border-left:1px solid #5373B4; + border-right:1px solid #C4CFE5; + border-bottom:1px solid #C4CFE5; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #9CAFD4; + border-bottom: 1px solid #9CAFD4; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.even { + padding-left: 6px; + background-color: #F7F8FB; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #3D578C; +} + +.arrow { + color: #9CAFD4; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: Arial, Helvetica; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: #728DC1; + color: white; + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderopen.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderclosed.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('doc.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +table.directory { + font: 400 14px Roboto,sans-serif; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #2A3D61; +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + /*width: 100%;*/ + margin-bottom: 10px; + border: 1px solid #A8B8D9; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A8B8D9; + /*width: 100%;*/ +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + font-size: 90%; + color: #253555; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A8B8D9; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:#8AA0CC; + border:solid 1px #C2CDE4; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#364D7C; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: #283A5D; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color:#6884BD; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#364D7C; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C4CFE5; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +dl +{ + padding: 0 0 0 10px; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ +dl.section +{ + margin-left: 0px; + padding-left: 0px; +} + +dl.note +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00D000; +} + +dl.deprecated +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #505050; +} + +dl.todo +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00C0E0; +} + +dl.test +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #3030E0; +} + +dl.bug +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5373B4; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #90A5CE; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#334975; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; +} + +dl.citelist dd { + margin:2px 0; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F4F6FA; + border: 1px solid #D8DFEE; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #4665A2; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + white-space: nowrap; + background-color: white; + border: 1px solid gray; + border-radius: 4px 4px 4px 4px; + box-shadow: 1px 1px 7px gray; + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: grey; + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: #006318; +} + +#powerTip div { + margin: 0px; + padding: 0px; + font: 12px/16px Roboto,sans-serif; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: #ffffff; + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before { + border-top-color: #808080; + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: #ffffff; + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: #808080; + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: #ffffff; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: #ffffff; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + diff --git a/doxygen.png b/doxygen.png new file mode 100644 index 000000000..3ff17d807 Binary files /dev/null and b/doxygen.png differ diff --git a/dynsections.js b/dynsections.js new file mode 100644 index 000000000..85e183690 --- /dev/null +++ b/dynsections.js @@ -0,0 +1,97 @@ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l -/// - -#include "Monitoring/MonitoringFactory.h" - -using namespace o2::monitoring; - -int main() -{ - // Configure monitoring - // Pass string with list of URLs as parameter - auto monitoring = MonitoringFactory::Get("influxdb-stdout://"); - - // send a metric using one of two equivalent methods - // 10 is the value - // myMetric is the name of the metric by creating and moving Metric object - monitoring->send({10, "myMetricInt"}); // default name is "value" - monitoring->send(Metric{"myMetricInt"}.addValue(10, "value")); - - // now send a metric with multiple values - monitoring->send(Metric{10, "myMetricInt"}.addValue(10.10, "value_float")); - monitoring->send(Metric{"myMetricInt"}.addValue(10, "value").addValue(10.10, "value_float")); -} diff --git a/examples/10-Buffering.cxx b/examples/10-Buffering.cxx deleted file mode 100644 index 5db5a6c7d..000000000 --- a/examples/10-Buffering.cxx +++ /dev/null @@ -1,25 +0,0 @@ -/// -/// \file 10-Buffering.cxx -/// \author Adam Wegrzynek -/// - -#include "Monitoring/MonitoringFactory.h" - -using Monitoring = o2::monitoring::MonitoringFactory; - -int main() -{ - // Configure monitoring - // Pass string with list of URLs as parameter - auto monitoring = Monitoring::Get("stdout://"); - monitoring->enableBuffering(10); - - // now send an application specific metric - // 10 is the value - // myMetric is the name of the metric by creating and moving Metric object - for (int i = 0; i < 25; i++) { - monitoring->send({10, "myMetricInt"}); - } - monitoring->send({10.10, "myMetricFloat"}); - monitoring->flushBuffer(); -} diff --git a/examples/11-KafkaToWebsocket.cxx b/examples/11-KafkaToWebsocket.cxx deleted file mode 100644 index 6938b039c..000000000 --- a/examples/11-KafkaToWebsocket.cxx +++ /dev/null @@ -1,45 +0,0 @@ -/// -/// \file 11-KafkaToHttp.cxx -/// \author Adam Wegrzynek -/// - -#include "Monitoring/MonitoringFactory.h" -#include "../src/Transports/HTTP.h" -#include "../src/Transports/WebSocket.h" - -#include -#include -#include -#include - -using namespace o2::monitoring; - -int main(int argc, char* argv[]) -{ - boost::program_options::options_description desc("Program options"); - desc.add_options() - ("kafka-host", boost::program_options::value()->required(), "Kafka broker hostname") - ("kafka-topics", boost::program_options::value>()->multitoken()->required(), "Kafka topics") - ("grafana-host", boost::program_options::value()->required(), "Grafana hostname") - ("grafana-key", boost::program_options::value()->required(), "Grafana API key"); - boost::program_options::variables_map vm; - boost::program_options::store(boost::program_options::parse_command_line(argc, argv, desc), vm); - boost::program_options::notify(vm); - - - auto kafkaConsumer = MonitoringFactory::GetPullClient(vm["kafka-host"].as() + ":9092", std::vector{vm["kafka-topics"].as>()}); - auto outTransport = std::make_unique(vm["grafana-host"].as(), 3000, vm["grafana-key"].as(), "alice_o2"); - std::thread readThread([&outTransport](){ - for (;;) { - outTransport->read(); - std::this_thread::sleep_for(std::chrono::milliseconds(500)); - } - }); - for (;;) { - auto metrics = kafkaConsumer->pull(); - for (auto& metric : metrics) { - outTransport->send(std::move(metric.second)); - } - std::this_thread::sleep_for(std::chrono::milliseconds(100)); - } -} diff --git a/examples/12-KafkaToInfluxDb.cxx b/examples/12-KafkaToInfluxDb.cxx deleted file mode 100644 index 218f4614c..000000000 --- a/examples/12-KafkaToInfluxDb.cxx +++ /dev/null @@ -1,99 +0,0 @@ -/// -/// \file 12-KafkaToInfluxDb.cxx -/// \author Adam Wegrzynek -/// -#include "../src/Transports/KafkaConsumer.h" -#include "../src/Backends/InfluxDB.h" -#include "../src/Transports/HTTP.h" - -#include -#include -#include -#include -#include -#include - -#include "envs.pb.h" -#include "../src/MonLogger.h" - -using namespace o2::monitoring; - - -std::string getCreateBucketBody(const std::string& orgId, const int run) { - std::stringstream postPayload; - postPayload << R"({ - "orgID": ")" + orgId + R"(", - "name": ")" + std::to_string(run) + R"(", - "retentionRules": [{ - "type": "expire", - "everySeconds": 86400, - "shardGroupDurationSeconds": 86400 - }] - })"; - return postPayload.str(); -} - -int main(int argc, char* argv[]) -{ - boost::program_options::options_description desc("Program options"); - desc.add_options() - ("kafka-host", boost::program_options::value()->required(), "Kafka broker hostname") - ("influxdb-url", boost::program_options::value()->required(), "InfluxDB hostname") - ("influxdb-token", boost::program_options::value()->required(), "InfluxDB token") - ("influxdb-org", boost::program_options::value()->default_value("cern"), "InfluxDB organisation") - ("influxdb-bucket", boost::program_options::value()->default_value("aliecs"), "InfluxDB bucket") - ("influxdb-dpl-url", boost::program_options::value(), "InfluxDB DPL ID") - ("influxdb-dpl-orgid", boost::program_options::value(), "InfluxDB DPL organization ID") - ("influxdb-dpl-token", boost::program_options::value(), "InfluxDB DPL token"); - boost::program_options::variables_map vm; - boost::program_options::store(boost::program_options::parse_command_line(argc, argv, desc), vm); - boost::program_options::notify(vm); - - MonLogger::mLoggerSeverity = Severity::Debug; - std::vector topics = {"aliecs.env_leave_state.RUNNING", "aliecs.env_state.RUNNING"}; - auto kafkaConsumer = std::make_unique(vm["kafka-host"].as() + ":9092", topics, "aliecs-run-times"); - auto httpTransport = std::make_unique( - vm["influxdb-url"].as() + "/api/v2/write?" + - "org=" + vm["influxdb-org"].as() + "&" + - "bucket=" + vm["influxdb-bucket"].as() - ); - httpTransport->addHeader("Authorization: Token " + vm["influxdb-token"].as()); - auto influxdbBackend = std::make_unique(std::move(httpTransport)); - - std::unique_ptr influxBucketApi; - if (vm.count("influxdb-dpl-orgid") && vm.count("influxdb-dpl-url") && vm.count("influxdb-dpl-token")) { - MonLogger::Get() << "Creating bucket HTTP API for " << vm["influxdb-dpl-url"].as() << MonLogger::End(); - influxBucketApi.reset(new transports::HTTP(vm["influxdb-dpl-url"].as() + "/api/v2/buckets")); - influxBucketApi->addHeader("Authorization: Token " + vm["influxdb-dpl-token"].as()); - } - - for (;;) { - auto changes = kafkaConsumer->pull(); - if (!changes.empty()) { - for (auto& change : changes) { - aliceo2::envs::NewStateNotification stateChange; - stateChange.ParseFromString(change.second); - if (stateChange.envinfo().state().empty()) { - continue; - } - int run = stateChange.envinfo().runnumber(); - auto metric = Metric{"run_times"}; - if (change.first.find("leave") != std::string::npos) { - metric.addValue(stateChange.timestamp(), "eor"); - MonLogger::Get() << stateChange.envinfo().environmentid() << "/" << stateChange.envinfo().runnumber() << " " << change.first << " EOR: " << stateChange.timestamp() << MonLogger::End(); - } else { - metric.addValue(stateChange.envinfo().runtype(), "type").addValue(stateChange.envinfo().enterstatetimestamp(), "sor"); - MonLogger::Get() << stateChange.envinfo().environmentid() << "/" << stateChange.envinfo().runnumber() << " " << change.first << " SOR: " < 1) { - MonLogger::Get() << "Request sent to create bucket " << stateChange.envinfo().runnumber() << " on " << vm["influxdb-dpl-url"].as() << MonLogger::End(); - influxBucketApi->send(getCreateBucketBody(vm["influxdb-dpl-orgid"].as(), stateChange.envinfo().runnumber())); - } - } - if (run > 1) { - influxdbBackend->sendWithRun(metric, stateChange.envinfo().environmentid(), std::to_string(run)); - } - } - } - std::this_thread::sleep_for(std::chrono::milliseconds(1000)); - } -} diff --git a/examples/13-PullClient.cxx b/examples/13-PullClient.cxx deleted file mode 100644 index b739e0939..000000000 --- a/examples/13-PullClient.cxx +++ /dev/null @@ -1,30 +0,0 @@ -/// -/// \file 13-PullClient.cxx -/// \author Adam Wegrzynek -/// - -#include "Monitoring/MonitoringFactory.h" - -using namespace o2::monitoring; - -int main() -{ - //int ix=0; - /// List of topics to subscribe - std::vector topics = {"cru.link_status"}; - /// Connect to server - auto client = MonitoringFactory::GetPullClient("adam-kafka:9092", topics, "link-status-consumer"); - for (;;) { - auto metrics = client->pull(); - if (!metrics.empty()) { - for (auto& metric : metrics) { - /// metric.first => topic name; metric.second => metric itself as string - /// metric sample: link,serialId=983,endpoint=1,CRU=1,id=11,type=CRU pciAddress="b0:00.0",status=1i 1673940809860009855 - std::cout << metric.second << std::endl; - } - } else { - // wait a bit if no data available - std::this_thread::sleep_for(std::chrono::milliseconds(100)); - } - } -} diff --git a/examples/14-OrbitId.cxx b/examples/14-OrbitId.cxx deleted file mode 100644 index b28eb2dcc..000000000 --- a/examples/14-OrbitId.cxx +++ /dev/null @@ -1,133 +0,0 @@ -/// -/// \file 14-OrbitId.cxx -/// \author Adam Wegrzynek -/// - -#include "../src/Transports/KafkaConsumer.h" -#include "../src/Transports/Unix.h" - -#include -#include -#include -#include -#include -#include - -#include "envs.pb.h" -#include "../src/MonLogger.h" - -using namespace o2::monitoring; - -std::map detectorRunMap; - -std::map referenceOrbitIdMap; - -std::string getValueFromMetric(const std::string& key, const std::string& metric) { - auto indexStart = metric.find(key + "="); - if (indexStart == std::string::npos) { - return {}; - } - auto indexEnd = std::find_if(metric.begin() + indexStart, metric.end(), [](const char& s) { return s == ' ' or s == ','; }); - return std::string(metric.begin() + indexStart + key.size() + 1, indexEnd); -} - - -int main(int argc, char* argv[]) -{ - boost::program_options::options_description desc("Program options"); - desc.add_options() - ("kafka-host", boost::program_options::value()->required(), "Kafka broker hostname"); - boost::program_options::variables_map vm; - boost::program_options::store(boost::program_options::parse_command_line(argc, argv, desc), vm); - boost::program_options::notify(vm); - - MonLogger::mLoggerSeverity = Severity::Debug; - std::vector topics = {"aliecs.env_list.RUNNING", "cru.link_status"}; - auto kafkaConsumer = std::make_unique(vm["kafka-host"].as() + ":9092", topics, "orbitid"); - auto unixSocket = std::make_unique("/tmp/telegraf.sock"); - for (;;) { - auto messages = kafkaConsumer->pull(); - if (!messages.empty()) { - for (auto& message : messages) { - // handle active runs messages - if (message.first == "aliecs.env_list.RUNNING") { - aliceo2::envs::ActiveRunsList activeRuns; - activeRuns.ParseFromString(message.second); - detectorRunMap.clear(); - for (int i = 0; i < activeRuns.activeruns_size(); i++) { - auto run = activeRuns.activeruns(i).runnumber(); - for (int j = 0; j < activeRuns.activeruns(i).detectors_size(); j++) { - auto detector = activeRuns.activeruns(i).detectors(j); - auto runType = activeRuns.activeruns(i).runtype(); - if (runType.find("calib") != std::string::npos || runType.find("CALIB") != std::string::npos) { - MonLogger::Get() << "Skipping calibration run " << run << MonLogger::End(); - continue; - } - for (auto& c : detector) c = std::tolower(c); - detectorRunMap.insert({detector, run}); - } - } - if (detectorRunMap.empty()) { - MonLogger::Get() << "No ongoing runs" << MonLogger::End(); - referenceOrbitIdMap.clear(); - } - for (const auto &p : detectorRunMap) { - MonLogger::Get() << p.first << " belongs to run " << p.second << MonLogger::End(); - } - // if SOR - // handle link status messages - } else if (message.first == "cru.link_status") { - auto detector = getValueFromMetric("detector", message.second); - auto orbitId = getValueFromMetric("orbitSor", message.second); - auto status = getValueFromMetric("status", message.second); - if (detector.empty() or orbitId.empty()) { - continue; - } - // Temporary disregard MCH and MID - // TODO: remove - if (detector == "mch" || detector == "mid") { - continue; - } - - // if detector is not running - auto detectorInRun = detectorRunMap.find(detector); - if (detectorInRun == detectorRunMap.end()) { - continue; - } - // if link is excluded - if (status != "1i") { - continue; - } - // Temporary disable 0s - // TODO: remove - if (orbitId == "0i") { - continue; - } - - // Drop wrongly reported values during BAR read (0xFFFFFFFF) - if (orbitId == "4294967295i") { - continue; - } - - std::string outputMetric = "orbitIdMismatch" + message.second.substr(message.second.find(","), message.second.find(" ") - message.second.find(",")) + ",run=" + std::to_string(detectorRunMap.at(detector)); - auto referenceOrbit = referenceOrbitIdMap.find(detectorRunMap.at(detector)); - if (referenceOrbit == referenceOrbitIdMap.end()) { - /// wait for trigger - if (orbitId == "0i") { - continue; - } - referenceOrbitIdMap.insert({detectorRunMap.at(detector), orbitId}); - MonLogger::Get() << "Set reference orbitId for run " << detectorRunMap.at(detector) << ": " << orbitId << MonLogger::End(); - unixSocket->send(outputMetric + " reference=" + orbitId); - } - auto referenceOrbitId = referenceOrbitIdMap.at(detectorRunMap.at(detector)); - if (orbitId != referenceOrbitId) { - MonLogger::Get() << "Abnormal condition for " << detector << "; expected orbitID: " << referenceOrbitId << " but got: " << orbitId << MonLogger::End(); - unixSocket->send(outputMetric + " mismatched=" + orbitId); - } - } - } - } - std::this_thread::sleep_for(std::chrono::milliseconds(1)); - } -} diff --git a/examples/15-ODC.cxx b/examples/15-ODC.cxx deleted file mode 100644 index 8ade47406..000000000 --- a/examples/15-ODC.cxx +++ /dev/null @@ -1,320 +0,0 @@ -/// -/// \file 15-ODC.cxx -/// \author Adam Wegrzynek -/// - -#include -#include -#include "odc.grpc.pb.h" -#include "helpers/HttpConnection.h" -#include -#include -#include -#include "../src/MonLogger.h" - -using grpc::Channel; -using grpc::ClientContext; -using grpc::Status; - -using odc::ODC; -using odc::StatusRequest; -using odc::StatusReply; - -using odc::StateRequest; -using odc::StateReply; -using odc::GeneralReply; -using o2::monitoring::MonLogger; - -std::mutex gMapAccess; - -struct OdcStats { - int EpnCount; - int FailedTasks; - unsigned int RecoTasks; - unsigned int CalibTasks; - std::unordered_map TasksPerCalib; - std::unordered_map FailedTasksPerCalib; - std::unordered_map CalibNames; - std::string State; -}; - -std::map gStats; - -void httpServer(tcp::acceptor& acceptor, tcp::socket& socket) { - acceptor.async_accept(socket, [&](beast::error_code ec) { - if (!ec) { - auto connection = std::make_shared(std::move(socket)); - connection->addCallback("SHOW+RETENTION+POLICIES", - [](http::request& /*request*/, http::response& response) { - response.set(http::field::content_type, "application/json"); - beast::ostream(response.body()) << "{}\n"; - }); - connection->addCallback("SHOW+measurements", - [](http::request& /*request*/, http::response& response) { - response.set(http::field::content_type, "application/json"); - beast::ostream(response.body()) << R"({"results":[{"statement_id":0,"series":[{"name":"measurements","columns":["name"],"values":[["odc"]]}]}]}\n)"; - }); - connection->addCallback("SHOW+TAG+VALUES+FROM+calibs+WITH+KEY", - [](http::request& request, http::response& response) { - std::string jsonPrefix = R"({"results": [{"statement_id": 0, "series": [{"name": "odc_calibs", "columns": ["value"], "values": [)"; - std::string jsonSuffix = R"(]}]}]})"; - response.set(http::field::content_type, "application/json"); - std::string calibJson; - std::string id = std::string(request.target().substr(request.target().find("WHERE+partitionid+%3D+") + 22)); - const std::lock_guard lock(gMapAccess); - if (gStats.find(id) != gStats.end()) { - for (auto const& calib : gStats.at(id).TasksPerCalib) { - calibJson += "[\"" + calib.first + "\"],"; - } - } - if (!calibJson.empty()) { - calibJson.pop_back(); - } - beast::ostream(response.body()) << jsonPrefix << calibJson << jsonSuffix << '\n'; - }); - connection->addCallback("odc_status+WHERE+partitionid", - [](http::request& request, http::response& response) { - std::string jsonPrefix = R"({"results":[{"statement_id":0,"series":[{"name":"odc","columns":["time","State","EPN count","Failed tasks", "Calib tasks", "Reco tasks"],"values":[)"; - std::string jsonSuffix = R"(]}]}]})"; - response.set(http::field::content_type, "application/json"); - std::string id = std::string(request.target().substr(request.target().find("WHERE+partitionid+%3D+") + 22)); - std::string odcStatJson; - const std::lock_guard lock(gMapAccess); - if (gStats.find(id) != gStats.end()) { - odcStatJson += "[" + std::to_string(0) + ", \"" - + gStats.at(id).State + "\", \"" - + std::to_string(gStats.at(id).EpnCount) + "\", \"" - + std::to_string(gStats.at(id).FailedTasks) + "\", \"" - + std::to_string(gStats.at(id).CalibTasks) + "\", \"" - + std::to_string(gStats.at(id).RecoTasks) + "\"]"; - } - beast::ostream(response.body()) << jsonPrefix << odcStatJson << jsonSuffix << '\n'; - }); - connection->addCallback("calib_tasks+WHERE+calib", - [](http::request& request, http::response& response) { - std::string jsonPrefix = R"({"results":[{"statement_id":0,"series":[{"name":"calib_tasks","columns":["time","Name", "Total","Failed"],"values":[)"; - std::string jsonSuffix = R"(]}]}]})"; - response.set(http::field::content_type, "application/json"); - std::string calib = std::string(request.target().substr(request.target().find("WHERE+calib+%3D+") + 16)); - std::string calibTasksJson; - const std::lock_guard lock(gMapAccess); - calibTasksJson += "["; - int countOk = 0; - bool keepAll = 0; - if (!calib.compare(0,3, "All")) { - keepAll = 1; - } - for (const auto& run : gStats) { - /* - // test code to dump content of gStats items - // based on runtime tests, here are the findings: - // run.first is the partition Id - // run.second is an OdcStats struct - // example output with 2 tasks in 2 partitions - // iterating 2tCTU23Be7j - // tasks per calib = 1 - // failed tasks per calib = 0 - // calib names = 1 - // task calib4 = 5 - // name calib4 = barrel_tf - // iterating 2tCWsyiDYm7 - // tasks per calib = 1 - // failed tasks per calib = 0 - // calib names = 0 - // task calib2 = 14 - // - std::cout << "iterating " << run.first << std::endl; - std::cout << "tasks per calib = " << run.second.TasksPerCalib.size() << std::endl; - std::cout << "failed tasks per calib = " << run.second.FailedTasksPerCalib.size() << std::endl; - std::cout << "calib names = " << run.second.CalibNames.size() << std::endl; - for (const auto& p : run.second.TasksPerCalib) { - std::cout << "task " << p.first << " = " << p.second << std::endl; - } - for (const auto& p : run.second.FailedTasksPerCalib) { - std::cout << "failed " << p.first << " = " << p.second << std::endl; - } - for (const auto& p : run.second.CalibNames) { - std::cout << "name " << p.first << " = " << p.second << std::endl; - } - */ - // iterate over defined calib names, not the ones - - for(const auto &t: run.second.TasksPerCalib) { - unsigned int timestamp = 0; - std::string name = ""; - unsigned int tasksPerCalib = 0; - unsigned int failedTasks = 0; - - std::string theCalib = t.first; - if (!keepAll && (calib != theCalib)) { - // filter out this element, it does not match queried calib name - continue; - } - - tasksPerCalib = t.second; - - // find matching calib name - auto nameIt = run.second.CalibNames.find(theCalib); - if (nameIt != run.second.CalibNames.end()) { - name = (*nameIt).second; - } - - // find matching calib failedTasks - auto failedIt = run.second.FailedTasksPerCalib.find(theCalib); - if (failedIt != run.second.FailedTasksPerCalib.end()) { - failedTasks = (*failedIt).second; - } - - // insert task in JSON - if (countOk) { - // next vector - calibTasksJson += "], ["; - } - calibTasksJson += - std::to_string(timestamp) - + ", \"" - + name - + "\", " - + std::to_string(tasksPerCalib) - + ", " - + std::to_string(failedTasks); - - countOk++; - } - } - calibTasksJson += "]"; - // workaround to set valid reply if nothing to report - if (!countOk) { - calibTasksJson = "[0, \"\", 0, 0]"; - } - beast::ostream(response.body()) << jsonPrefix << calibTasksJson << jsonSuffix << '\n'; - }); - connection->start(); - } - httpServer(acceptor, socket); - }); -} - -class OdcClient { - public: - OdcClient(std::shared_ptr channel) : mStub(ODC::NewStub(channel)) {} - void getStatus() { - gStats.clear(); - StatusRequest request; - request.set_running(true); - StatusReply reply; - ClientContext context; - Status status = mStub->Status(&context, request, &reply); - if (status.ok()) { - MonLogger::Get() << "Status call OK" << MonLogger::End(); - for (int i = 0; i < reply.partitions_size(); i++) { - auto partitionId = reply.partitions(i).partitionid(); - OdcStats stats; - stats.State = reply.partitions(i).state(); - getRunState(partitionId, stats); - const std::lock_guard lock(gMapAccess); - gStats.insert({partitionId, stats}); - } - } else { - std::cout << status.error_code() << ": " << status.error_message() << std::endl; - } - } - void getRunState(const std::string& partitionId, OdcStats& stats) { - StateRequest request; - request.set_detailed(true); - request.set_partitionid(partitionId); - StateReply reply; - ClientContext context; - Status status = mStub->GetState(&context, request, &reply); - if (status.ok()) { - MonLogger::Get() << "State call for " << partitionId << " OK" << MonLogger::End(); - unsigned int failedCount = 0; - std::unordered_set uniqueEpns{}; - std::unordered_set calibCollections{}; - unsigned int recoTasks = 0; - unsigned int calibTasks = 0; - std::regex rReco("_reco[0-9]+_"); - std::regex rCalib("_calib[0-9]+_"); - for (int i = 0; i < reply.devices_size(); i++) { - if (reply.devices(i).state() == "ERROR") { - failedCount++; - } - uniqueEpns.insert(reply.devices(i).host()); - if (std::regex_search(reply.devices(i).path(), rReco)) { - recoTasks++; - } - if (std::regex_search(reply.devices(i).path(), rCalib)) { - calibTasks++; - const auto& path = reply.devices(i).path(); - auto calibIdx = path.find("_calib"); - auto calib = path.substr(calibIdx + 1, path.size()-calibIdx-3); - auto calibName = path.substr(path.find_last_of('/') + 1, calibIdx - path.find_last_of('/') - 1); - if (calibName.find("aggregator-proxy-") != std::string::npos) { - stats.CalibNames.insert({calib, calibName.substr(calibName.find_last_of('-') + 1)}); - } - auto it = stats.TasksPerCalib.find(calib); - if (it != stats.TasksPerCalib.end()) { - it->second++; - } - else { - stats.TasksPerCalib.insert({calib, 1}); - } - if (reply.devices(i).state() == "ERROR") { - auto it = stats.FailedTasksPerCalib.find(calib); - if (it != stats.FailedTasksPerCalib.end()) { - it->second++; - } - else { - stats.FailedTasksPerCalib.insert({calib, 1}); - } - } - } - } - const std::lock_guard lock(gMapAccess); - stats.RecoTasks = recoTasks; - stats.CalibTasks = calibTasks; - stats.EpnCount = uniqueEpns.size(); - stats.FailedTasks = failedCount; - } else { - std::cout << status.error_code() << ": " << status.error_message() << std::endl; - } - } - - private: - std::unique_ptr mStub; -}; - - -int main(int argc, char* argv[]) { - boost::program_options::options_description desc("Program options"); - desc.add_options() - ("odc-host", boost::program_options::value()->required(), "ODC hostname") - ("odc-port", boost::program_options::value()->required(), "ODC port") - ("http-port", boost::program_options::value()->default_value(8088), "HTTP server bind port"); - boost::program_options::variables_map vm; - boost::program_options::store(boost::program_options::parse_command_line(argc, argv, desc), vm); - boost::program_options::notify(vm); - unsigned short port = vm["http-port"].as(); - - MonLogger::mLoggerSeverity = o2::monitoring::Severity::Debug; - MonLogger::Get() << "Connected to ODC server: " << vm["odc-host"].as() << ":" << vm["odc-port"].as() << "; serving HTTP on port: " << port << MonLogger::End(); - std::thread webServerThread([&port](){ - auto const address = boost::asio::ip::make_address("0.0.0.0"); - boost::asio::io_context ioc{1}; - tcp::acceptor acceptor{ioc, {address, port}}; - tcp::socket socket{ioc}; - httpServer(acceptor, socket); - ioc.run(); - }); - grpc::ChannelArguments args; - args.SetMaxReceiveMessageSize(20*1024*1024); - OdcClient client(grpc::CreateCustomChannel( - vm["odc-host"].as() + ":" + std::to_string(vm["odc-port"].as()), - grpc::InsecureChannelCredentials(), - args - )); - for (;;) { - client.getStatus(); - std::this_thread::sleep_for(std::chrono::seconds(15)); - } -} diff --git a/examples/16-AliECS.cxx b/examples/16-AliECS.cxx deleted file mode 100644 index bae4fb04f..000000000 --- a/examples/16-AliECS.cxx +++ /dev/null @@ -1,86 +0,0 @@ -/// -/// \file 16-AliECS.cxx -/// \author Adam Wegrzynek -/// - -#include -#include -#include "o2control.grpc.pb.h" -#include "helpers/HttpConnection.h" -#include -#include -#include -#include "../src/Backends/InfluxDB.h" -#include "../src/Transports/HTTP.h" -#include "../src/MonLogger.h" - -using o2::monitoring::MonLogger; -using grpc::Channel; -using grpc::ClientContext; -using grpc::Status; - -using o2control::EnvironmentInfo; -using namespace o2::monitoring; - -class AliEcsClient { - public: - AliEcsClient(std::shared_ptr channel) : mStub(o2control::Control::NewStub(channel)) {} - void sendRunDetails(backends::InfluxDB* const influxBackend) { - o2control::GetEnvironmentsRequest request; - request.set_showall(false); - request.set_showtaskinfos(false); - o2control::GetEnvironmentsReply reply; - ClientContext context; - Status status = mStub->GetEnvironments(&context, request, &reply); - if (status.ok()) { - MonLogger::Get() << "Status call OK" << MonLogger::End(); - for (int i = 0; i < reply.environments_size(); i++) { - if (reply.environments(i).currentrunnumber() > 1) { - MonLogger::Get() << "Env ID" << reply.environments(i).id() << MonLogger::End(); - auto metric = Metric{"tasks"}; - metric.addValue(reply.environments(i).numberofactivetasks(), "active").addValue(reply.environments(i).numberofinactivetasks(), "inactive"); - influxBackend->sendWithRun(metric, reply.environments(i).id(), std::to_string(reply.environments(i).currentrunnumber())); - } - } - } else { - std::cout << status.error_code() << ": " << status.error_message() << std::endl; - } - } - private: - std::unique_ptr mStub; -}; - - -int main(int argc, char* argv[]) { - boost::program_options::options_description desc("Program options"); - desc.add_options() - ("aliecs-host", boost::program_options::value()->required(), "AliECS hostname") - ("aliecs-port", boost::program_options::value()->required(), "AliECS port") - ("influxdb-url", boost::program_options::value()->required(), "InfluxDB hostname") - ("influxdb-token", boost::program_options::value()->required(), "InfluxDB token") - ("influxdb-org", boost::program_options::value()->default_value("cern"), "InfluxDB organisation") - ("influxdb-bucket", boost::program_options::value()->default_value("aliecs"), "InfluxDB bucket"); - boost::program_options::variables_map vm; - boost::program_options::store(boost::program_options::parse_command_line(argc, argv, desc), vm); - boost::program_options::notify(vm); - MonLogger::mLoggerSeverity = o2::monitoring::Severity::Debug; - MonLogger::Get() << "Connected to AliECS server: " << vm["aliecs-host"].as() << ":" << vm["aliecs-port"].as() << MonLogger::End(); - grpc::ChannelArguments args; - args.SetMaxReceiveMessageSize(20*1024*1024); - AliEcsClient client(grpc::CreateCustomChannel( - vm["aliecs-host"].as() + ":" + std::to_string(vm["aliecs-port"].as()), - grpc::InsecureChannelCredentials(), - args - )); - auto httpTransport = std::make_unique( - vm["influxdb-url"].as() + "/api/v2/write?" + - "org=" + vm["influxdb-org"].as() + "&" + - "bucket=" + vm["influxdb-bucket"].as() - ); - httpTransport->addHeader("Authorization: Token " + vm["influxdb-token"].as()); - auto influxdbBackend = std::make_unique(std::move(httpTransport)); - for (;;) { - client.sendRunDetails(influxdbBackend.get()); - std::this_thread::sleep_for(std::chrono::seconds(15)); - } -} diff --git a/examples/2-TaggedMetrics.cxx b/examples/2-TaggedMetrics.cxx deleted file mode 100644 index a25b3617d..000000000 --- a/examples/2-TaggedMetrics.cxx +++ /dev/null @@ -1,29 +0,0 @@ -/// -/// \file 2-TaggedMetrics.cxx -/// \author Adam Wegrzynek -/// - -#include "Monitoring/MonitoringFactory.h" - -using namespace o2::monitoring; - -int main() -{ - - // Configure monitoring - // Pass string with list of URLs as parameter - auto monitoring = MonitoringFactory::Get("stdout://debug:@/"); - - /// Add global tags - monitoring->addGlobalTag("name", "test"); - monitoring->addGlobalTag(tags::Key::Subsystem, tags::Value::DPL); - - // now send an application specific metric with additional tags - // 10 is the value - // myMetric is the name of the metric - // then add predefined tag - monitoring->send(Metric{10, "myMetric"}.addTag(tags::Key::Detector, tags::Value::ACO)); - monitoring->send(Metric{10, "myMetric"}.addTag(tags::Key::CRU, 0)); - monitoring->send(Metric{10, "myMetric"}.addTag(tags::Key::CRU, 12)); - monitoring->send(Metric{10, "myMetric"}.addTag(tags::Key::CRU, 1234)); -} diff --git a/examples/3-Verbosity.cxx b/examples/3-Verbosity.cxx deleted file mode 100644 index cc6e37c2f..000000000 --- a/examples/3-Verbosity.cxx +++ /dev/null @@ -1,31 +0,0 @@ -/// -/// \file 3-Verbosity.cxx -/// \author Adam Wegrzynek -/// - -#include "Monitoring/MonitoringFactory.h" - -using namespace o2::monitoring; - -int main() -{ - // Configure monitoring - // Pass string with list of URLs as parameter - // Set backend verbosities as URL path - auto monitoring = MonitoringFactory::Get("stdout:///debug,influxdb-stdout:///prod"); - - monitoring->send({1, "myMetricInfo"}); // By default metric verbosity is set to Info - monitoring->send({1, "myMetricInfo"}); - - /// Verbosity is supported by buffering... - monitoring->enableBuffering(); - monitoring->send({10, "myMetricDebug", Verbosity::Debug}); - monitoring->send({10.10, "myMetricProd", Verbosity::Prod}); - - /// ... and derived metric modes - monitoring->send({10, "myMetricDebug", Verbosity::Debug}, DerivedMetricMode::INCREMENT); - monitoring->send({10.10, "myMetricProd", Verbosity::Prod}, DerivedMetricMode::INCREMENT); - - monitoring->send({10, "myMetricDebug", Verbosity::Debug}, DerivedMetricMode::INCREMENT); - monitoring->send({10.10, "myMetricProd", Verbosity::Prod}, DerivedMetricMode::INCREMENT); -} diff --git a/examples/4-RateDerivedMetric.cxx b/examples/4-RateDerivedMetric.cxx deleted file mode 100644 index 196f76e04..000000000 --- a/examples/4-RateDerivedMetric.cxx +++ /dev/null @@ -1,30 +0,0 @@ -/// -/// \file 4-RateDerivedMetric.cxx -/// \author Adam Wegrzynek -/// - -#include "Monitoring/MonitoringFactory.h" - -using namespace o2::monitoring; - -int main() -{ - // Configure monitoring - // Pass string with list of URLs as parameter - auto monitoring = MonitoringFactory::Get("stdout://"); - - // now send at least two metrics to see the result - for (int i = 0; i < 41; i += 10) { - monitoring->send(Metric{i, "myMetric"}.addTag(tags::Key::Subsystem, tags::Value::Readout), DerivedMetricMode::RATE); - std::this_thread::sleep_for(std::chrono::milliseconds(100)); - } - - // present "suppress" mode - for (int i = 0; i < 10; i++) { - monitoring->send(Metric{1, "slowMetric"}, DerivedMetricMode::SUPPRESS); // only 1 should be displayed - } - DerivedMetrics::mSuppressTimeout = std::chrono::seconds(1); // change timeout to 1 s - monitoring->send(Metric{2, "slowMetric"}, DerivedMetricMode::SUPPRESS); // value changes - std::this_thread::sleep_for(std::chrono::seconds(1)); - monitoring->send(Metric{2, "slowMetric"}, DerivedMetricMode::SUPPRESS); // timeout reached ! -} diff --git a/examples/5-Benchmark.cxx b/examples/5-Benchmark.cxx deleted file mode 100644 index 68e51eb85..000000000 --- a/examples/5-Benchmark.cxx +++ /dev/null @@ -1,116 +0,0 @@ -/// -/// \file 5-Benchmark.cxx -/// \author Adam Wegrzynek -/// - -#include "Monitoring/MonitoringFactory.h" -#include -#include - -using o2::monitoring::Metric; -using namespace o2::monitoring; - -int main(int argc, char* argv[]) -{ - int sleep = 1000000; - int count = 1; - int measurements = 1; - int flps = 1; - - std::srand(std::time(nullptr)); - - std::random_device rd; - std::mt19937 mt(rd()); - - std::uniform_real_distribution doubleDist(1.0, 100.0); - std::uniform_int_distribution<> intDist(1, 100); - - boost::program_options::options_description desc("Allowed options"); - desc.add_options() - ("sleep", boost::program_options::value(), "Thread sleep in microseconds") - ("url", boost::program_options::value()->required(), "URL to monitoring backend (or comma seperated list)") - ("id", boost::program_options::value(), "Instance ID") - ("count", boost::program_options::value(), "Number of loop cycles") - ("multiple", boost::program_options::bool_switch()->default_value(false), "Sends multiple metrics per measurement") - ("latency", boost::program_options::bool_switch()->default_value(false), "Sends timestamp as a value") - ("monitor", boost::program_options::bool_switch()->default_value(false), "Enabled process monitor") - ("buffer", boost::program_options::value(), "Creates buffr of given size") - ("measurements", boost::program_options::value(), "Number of different measurements") - ("flps", boost::program_options::value(), "Number of FLPs (tags)") - ("help,h", "Show usage"); - - boost::program_options::variables_map vm; - boost::program_options::store(boost::program_options::parse_command_line(argc, argv, desc), vm); - - if (vm.count("help")) { - std::cerr << desc << "\n"; - return 1; - } - - boost::program_options::notify(vm); - - if (vm.count("flps")) { - flps = vm["flps"].as(); - } - - if (vm.count("sleep")) { - sleep = vm["sleep"].as(); - } - - if (vm.count("count")) { - count = vm["count"].as(); - } - - if (vm.count("measurements")) { - measurements = vm["measurements"].as(); - } - - auto monitoring = MonitoringFactory::Get(vm["url"].as()); - monitoring->setRunNumber(intDist(mt)); - if (vm["monitor"].as()) { - monitoring->enableProcessMonitoring(1, {PmMeasurement::Cpu, PmMeasurement::Mem, PmMeasurement::Smaps}); - } - if (vm["multiple"].as()) { - for (int j = 1; j <= count; j++) { - for (int i = 1; i <= measurements; i++) { - monitoring->send(Metric{"measurement" + std::to_string(i)} - .addValue(doubleDist(mt), "doubleMetric") - .addValue(intDist(mt), "intMetric") - .addValue(std::rand() % 2, "onOffMetric") - ); - std::this_thread::sleep_for(std::chrono::microseconds(sleep)); - } - if (!vm.count("count")) - j--; - } - } else if (vm["latency"].as()) { - Metric::includeTimestamp = false; - for (int j = 1; j <= count; j++) { - auto timestamp = Metric::getCurrentTimestamp(); - uint64_t nowTimestamp = std::chrono::duration_cast( - timestamp.time_since_epoch()) - .count(); - monitoring->send({nowTimestamp, "latency"}); - std::this_thread::sleep_for(std::chrono::microseconds(sleep)); - if (!vm.count("count")) - j--; - } - } else { - if (vm.count("buffer")) { - monitoring->enableBuffering(vm["buffer"].as()); - } - for (int j = 1; j <= count; j++) { - for (int i = 1; i <= measurements; i++) { - for (int k = 1; k <= flps; k++) { - monitoring->send(Metric{doubleDist(mt), "doubleMetric" + std::to_string(i)}.addTag(tags::Key::FLP, k)); - monitoring->send(Metric{intDist(mt), "intMetric" + std::to_string(i)}.addTag(tags::Key::FLP, k).addTag(tags::Key::Subsystem, tags::Value::Readout)); - monitoring->send(Metric{std::rand() % 2, "onOffMetric" + std::to_string(i)}.addTag(tags::Key::FLP, k)); - std::this_thread::sleep_for(std::chrono::microseconds(10)); - } - std::this_thread::sleep_for(std::chrono::microseconds(sleep)); - } - if (!vm.count("count")) - j--; - } - } -} diff --git a/examples/6-Increment.cxx b/examples/6-Increment.cxx deleted file mode 100644 index 582162f2f..000000000 --- a/examples/6-Increment.cxx +++ /dev/null @@ -1,21 +0,0 @@ -/// -/// \file 6-Increment.cxx -/// \author Adam Wegrzynek -/// - -#include "Monitoring/MonitoringFactory.h" - -using Monitoring = o2::monitoring::MonitoringFactory; -using DerivedMetricMode = o2::monitoring::DerivedMetricMode; - -int main() -{ - // Configure monitoring - // Pass string with list of URLs as parameter - auto monitoring = Monitoring::Get("stdout://"); - - // Increment values by .. - monitoring->send({10, "myIncrementMetric"}, DerivedMetricMode::INCREMENT); - monitoring->send({5, "myIncrementMetric"}, DerivedMetricMode::INCREMENT); - monitoring->send({15, "myIncrementMetric"}, DerivedMetricMode::INCREMENT); -} diff --git a/examples/7-InternalBenchamrk.cxx b/examples/7-InternalBenchamrk.cxx deleted file mode 100644 index 9d0701cd1..000000000 --- a/examples/7-InternalBenchamrk.cxx +++ /dev/null @@ -1,60 +0,0 @@ -/// -/// \file 7-InternalBenchmark.cxx -/// \author Adam Wegrzynek -/// - -#include "Monitoring/MonitoringFactory.h" -#include - -using namespace o2::monitoring; -using namespace std::chrono; - -void test(std::unique_ptr& monitoring) -{ - for (int i = 0; i < 100000; i++) { - monitoring->send(Metric{"myMetricInt"}.addValue(10, "value")); - monitoring->send(Metric{"myMetricFloat"}.addValue(10.10, "value")); - } -} - -void testWithTags(std::unique_ptr& monitoring) -{ - monitoring->addGlobalTag("name", "benchmark"); - for (int i = 0; i < 100000; i++) { - monitoring->send(Metric{"myMetricInt"}.addValue(10, "value").addTag(tags::Key::Detector, tags::Value::TPC)); - monitoring->send(Metric{"myMetricFloat"}.addValue(10.10, "value").addTag(tags::Key::Subsystem, tags::Value::QC)); - } -} - -int main() -{ - static constexpr std::array backends = { - "no-op://", - "influxdb-udp://localhost:1234", - "stdout://", - "influxdb-stdout://"}; - std::cout << "| " << std::setw(30) << "Backend" - << " |" - << std::setw(10) << "no tags" - << " |" - << std::setw(10) << " (2+1) tags" - << " |" << std::endl; - std::cout << "+--------------------------------+-------------+-------------+" << std::endl; - for (auto& backend : backends) { - std::cout.setstate(std::ios_base::failbit); - auto monitoring = MonitoringFactory::Get(std::string(backend)); - - high_resolution_clock::time_point t1 = high_resolution_clock::now(); - test(monitoring); - high_resolution_clock::time_point t2 = high_resolution_clock::now(); - - high_resolution_clock::time_point t3 = high_resolution_clock::now(); - testWithTags(monitoring); - high_resolution_clock::time_point t4 = high_resolution_clock::now(); - - std::cout.clear(); - std::cout << "| " << std::setw(30) << backend << " |"; - std::cout << std::setw(10) << duration_cast(t2 - t1).count() << "us |"; - std::cout << std::setw(10) << duration_cast(t4 - t3).count() << "us |" << std::endl; - } -} diff --git a/examples/8-KafkaToHttpServer.cxx b/examples/8-KafkaToHttpServer.cxx deleted file mode 100644 index f4e01b209..000000000 --- a/examples/8-KafkaToHttpServer.cxx +++ /dev/null @@ -1,162 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "helpers/HttpConnection.h" -#include "../src/Transports/KafkaConsumer.h" -#include "envs.pb.h" -#include "../src/MonLogger.h" - -using namespace std::literals::string_literals; -using o2::monitoring::MonLogger; - -aliceo2::envs::ActiveRunsList gActiveEnvs; -std::mutex gEnvAccess; - -// "Loop" forever accepting new connections. -void httpServer(tcp::acceptor& acceptor, tcp::socket& socket) { - acceptor.async_accept(socket, [&](beast::error_code ec) { - if (!ec) { - auto connection = std::make_shared(std::move(socket)); - connection->addCallback("SHOW+RETENTION+POLICIES", - [](http::request& /*request*/, http::response& response) { - response.set(http::field::content_type, "application/json"); - beast::ostream(response.body()) << "{}\n"; - }); - connection->addCallback("SHOW+TAG+VALUES+FROM+runs", - [](http::request& /*request*/, http::response& response) { - std::string jsonPrefix = R"({"results": [{"statement_id": 0, "series": [{"name": "env_active", "columns": ["key", "value"], "values": [)"; - std::string jsonSuffix = R"(]}]}]})"; - response.set(http::field::content_type, "application/json"); - const std::lock_guard lock(gEnvAccess); - std::string envsJson; - for (int i = 0; i < gActiveEnvs.activeruns_size(); i++) { - envsJson += "[\"run\", \"" + std::to_string(gActiveEnvs.activeruns(i).runnumber()) + "\"],"; - } - if (!envsJson.empty()) { - envsJson.pop_back(); - } else { - envsJson += "[\"run\", \"0\"]"; - } - beast::ostream(response.body()) << jsonPrefix << envsJson << jsonSuffix << '\n'; - }); - connection->addCallback("SHOW+TAG+VALUES+FROM+detectors", - [](http::request& request, http::response& response) { - std::string jsonPrefix = R"({"results": [{"statement_id": 0, "series": [{"name": "detectors", "columns": ["key", "value"], "values": [)"; - std::string jsonSuffix = R"(]}]}]})"; - std::string runString = std::string(request.target().substr(request.target().find("WHERE+run+%3D+") + 14)); - response.set(http::field::content_type, "application/json"); - uint32_t run; - try { - run = static_cast(std::stoul(runString)); - } catch(...) { - beast::ostream(response.body()) << "{}\r\n"; - return; - } - const std::lock_guard lock(gEnvAccess); - std::string detectorsJson; - for (int i = 0; i < gActiveEnvs.activeruns_size(); i++) { - if (run != gActiveEnvs.activeruns(i).runnumber()) { - continue; - } - for (int j = 0; j < gActiveEnvs.activeruns(i).detectors_size(); j++) { - detectorsJson += "[\"detector\", \"" + boost::algorithm::to_lower_copy(gActiveEnvs.activeruns(i).detectors(j)) + "\"],"; - } - if (!detectorsJson.empty()) { - detectorsJson.pop_back(); - } - } - beast::ostream(response.body()) << jsonPrefix << detectorsJson << jsonSuffix << '\n'; - }); - connection->addCallback("active_runs+WHERE+run", - [](http::request& request, http::response& response) { - std::string jsonPrefix = R"({"results":[{"statement_id":0,"series":[{"name":"env","columns":["time","Env ID","Run number","Detectors","State", "Run type"],"values":[)"; - std::string jsonSuffix = R"(]}]}]})"; - response.set(http::field::content_type, "application/json"); - std::string runString = std::string(request.target().substr(request.target().find("WHERE+run+%3D+") + 14)); - uint32_t run; - try { - run = static_cast(std::stoul(runString)); - } catch(...) { - beast::ostream(response.body()) << "{}\r\n"; - return; - } - const std::lock_guard lock(gEnvAccess); - std::string envsJson; - for (int i = 0; i < gActiveEnvs.activeruns_size(); i++) { - if (run != gActiveEnvs.activeruns(i).runnumber()) { - continue; - } - auto detectorsProto = gActiveEnvs.activeruns(i).detectors(); - std::vector detectors(detectorsProto.begin(), detectorsProto.end()); - envsJson += "[" + std::to_string(gActiveEnvs.activeruns(i).enterstatetimestamp()) + ", \"" - + gActiveEnvs.activeruns(i).environmentid() + "\", " - + std::to_string(gActiveEnvs.activeruns(i).runnumber()) + ", \"" - + boost::algorithm::join(detectors, " ") + "\", \"" - + gActiveEnvs.activeruns(i).state() + "\", \"" - + gActiveEnvs.activeruns(i).runtype() + "\"]"; - } - beast::ostream(response.body()) << jsonPrefix << envsJson << jsonSuffix << '\n'; - }); - connection->start(); - } - httpServer(acceptor, socket); - }); -} - -// Deserialize active runs -void deserializeActiveRuns(const std::string& lastActiveRunMessage) -{ - aliceo2::envs::ActiveRunsList activeRuns; - activeRuns.ParseFromString(lastActiveRunMessage); - if (activeRuns.activeruns_size() == 0) { - MonLogger::Get() << "Empty active runs" << MonLogger::End(); - } else { - for (int i = 0; i < activeRuns.activeruns_size(); i++) { - MonLogger::Get() << "Active run: " << activeRuns.activeruns(i).runnumber() << " (" - << activeRuns.activeruns(i).environmentid() << ")" << MonLogger::End(); - } - } - const std::lock_guard lock(gEnvAccess); - gActiveEnvs = activeRuns; -} - -int main(int argc, char* argv[]) { - boost::program_options::options_description desc("Program options"); - desc.add_options() - ("kafka-host", boost::program_options::value()->required(), "Kafka host") - ("kafka-topics", boost::program_options::value>()->multitoken()->required(), "Kafka topics") - ("http-port", boost::program_options::value()->default_value(8086), "HTTP server bind port"); - boost::program_options::variables_map vm; - boost::program_options::store(boost::program_options::parse_command_line(argc, argv, desc), vm); - boost::program_options::notify(vm); - unsigned short port = vm["http-port"].as(); - - MonLogger::mLoggerSeverity = o2::monitoring::Severity::Debug; - MonLogger::Get() << "Using Kafka instance: " << vm["kafka-host"].as() << ":9092 and HTTP server port: " << port << MonLogger::End(); - std::thread webServerThread([&port](){ - auto const address = boost::asio::ip::make_address("0.0.0.0"); - boost::asio::io_context ioc{1}; - tcp::acceptor acceptor{ioc, {address, port}}; - tcp::socket socket{ioc}; - httpServer(acceptor, socket); - ioc.run(); - }); - - auto kafkaConsumer = std::make_unique( - vm["kafka-host"].as() + ":9092", std::vector{vm["kafka-topics"].as>()}, "kafka-aliecs-active-envs" - ); - for (;;) { - auto serializedRuns = kafkaConsumer->pull(); - if (!serializedRuns.empty()) { - deserializeActiveRuns(serializedRuns.back().second); - } - std::this_thread::sleep_for(std::chrono::milliseconds(500)); - } -} diff --git a/examples/9-RunNumber.cxx b/examples/9-RunNumber.cxx deleted file mode 100644 index 208bb0310..000000000 --- a/examples/9-RunNumber.cxx +++ /dev/null @@ -1,22 +0,0 @@ -/// -/// \file 9-RunNumber.cxx -/// \author Adam Wegrzynek -/// - -#include "Monitoring/MonitoringFactory.h" - -using namespace o2::monitoring; - -int main() -{ - - // Configure monitoring - // Pass string with list of URLs as parameter - auto monitoring = MonitoringFactory::Get("influxdb-stdout://"); - - monitoring->send(Metric{10, "myMetric"}); - monitoring->setRunNumber(1); - monitoring->send(Metric{10, "myMetric"}); - monitoring->setRunNumber(2); - monitoring->send(Metric{10, "myMetric"}); -} diff --git a/examples/helpers/HttpConnection.h b/examples/helpers/HttpConnection.h deleted file mode 100644 index 5292c4421..000000000 --- a/examples/helpers/HttpConnection.h +++ /dev/null @@ -1,88 +0,0 @@ -#include -#include -#include -#include -#include -#include - -namespace beast = boost::beast; -namespace http = beast::http; -using tcp = boost::asio::ip::tcp; - - -/// Helper class to represent HTTP connection -class httpConnection : public std::enable_shared_from_this -{ -public: - httpConnection(tcp::socket socket) : mSocket(std::move(socket)) {} - - // Initiate the asynchronous operations associated with the connection. - void start() { - readRequest(); - checkDeadline(); - } - - void addCallback(std::string_view path, std::function& request, http::response& response)> callback) { - mCallbacks.insert({path, callback}); - } - -private: - tcp::socket mSocket; - beast::flat_buffer mBuffer{8192}; - http::request mRequest; - http::response mResponse; - boost::asio::steady_timer mDeadline{mSocket.get_executor(), std::chrono::seconds(5)}; - std::map& request, http::response& response)>> mCallbacks; - - // Asynchronously receive a complete request message. - void readRequest() { - auto self = shared_from_this(); - http::async_read(mSocket, mBuffer, mRequest, [self](beast::error_code ec, std::size_t bytes_transferred) { - boost::ignore_unused(bytes_transferred); - if (!ec) self->processRequest(); - }); - } - - // Determine what needs to be done with the request message. - void processRequest() { - mResponse.version(mRequest.version()); - mResponse.keep_alive(false); - mResponse.result(http::status::ok); - createResponse(); - writeResponse(); - } - - // Construct a response message based on the program state. - void createResponse() { - for (const auto& [key, value] : mCallbacks) { - if (mRequest.target().find(key) != std::string_view::npos) { - value(mRequest, mResponse); - return; - } - } - mResponse.result(http::status::not_found); - mResponse.set(http::field::content_type, "text/plain"); - beast::ostream(mResponse.body()) << "Not found\r\n"; - } - - // Asynchronously transmit the response message. - void writeResponse() { - auto self = shared_from_this(); - mResponse.content_length(mResponse.body().size()); - http::async_write(mSocket, mResponse, [self](beast::error_code ec, std::size_t) { - self->mSocket.shutdown(tcp::socket::shutdown_send, ec); - self->mDeadline.cancel(); - }); - } - - // Check whether we have spent enough time on this connection. - void checkDeadline() { - auto self = shared_from_this(); - mDeadline.async_wait( - [self](beast::error_code ec) { - if(!ec) { - self->mSocket.close(ec); - } - }); - } -}; diff --git a/files.html b/files.html new file mode 100644 index 000000000..eefaa2b89 --- /dev/null +++ b/files.html @@ -0,0 +1,182 @@ + + + + + + +Monitoring: File List + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
File List
+
+
+
Here is a list of all documented files with brief descriptions:
+
+
+ + + + diff --git a/files.js b/files.js new file mode 100644 index 000000000..449230397 --- /dev/null +++ b/files.js @@ -0,0 +1,6 @@ +var files = +[ + [ "examples", "dir_d28a4824dc47e487b107a5db32ef43c4.html", "dir_d28a4824dc47e487b107a5db32ef43c4" ], + [ "include", "dir_d44c64559bbebec7f509842c48db8b23.html", "dir_d44c64559bbebec7f509842c48db8b23" ], + [ "src", "dir_68267d1309a1af8e8297ef4c3efbcdba.html", "dir_68267d1309a1af8e8297ef4c3efbcdba" ] +]; \ No newline at end of file diff --git a/folderclosed.png b/folderclosed.png new file mode 100644 index 000000000..bb8ab35ed Binary files /dev/null and b/folderclosed.png differ diff --git a/folderopen.png b/folderopen.png new file mode 100644 index 000000000..d6c7f676a Binary files /dev/null and b/folderopen.png differ diff --git a/functions.html b/functions.html new file mode 100644 index 000000000..d7eba78c3 --- /dev/null +++ b/functions.html @@ -0,0 +1,482 @@ + + + + + + +Monitoring: Class Members + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented class members with links to the class documentation for each member:
+ +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- g -

+ + +

- h -

+ + +

- i -

+ + +

- k -

+ + +

- m -

+ + +

- n -

+ + +

- o -

+ + +

- p -

+ + +

- s -

+ + +

- t -

+ + +

- u -

+ + +

- v -

+ + +

- ~ -

+
+
+ + + + diff --git a/functions_func.html b/functions_func.html new file mode 100644 index 000000000..ac35ef2d3 --- /dev/null +++ b/functions_func.html @@ -0,0 +1,449 @@ + + + + + + +Monitoring: Class Members - Functions + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+  + +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- g -

+ + +

- h -

+ + +

- i -

+ + +

- k -

+ + +

- m -

+ + +

- n -

+ + +

- o -

+ + +

- p -

+ + +

- s -

+ + +

- t -

+ + +

- u -

+ + +

- v -

+ + +

- ~ -

+
+
+ + + + diff --git a/functions_rela.html b/functions_rela.html new file mode 100644 index 000000000..2123f5279 --- /dev/null +++ b/functions_rela.html @@ -0,0 +1,136 @@ + + + + + + +Monitoring: Class Members - Related Functions + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
+ + + + diff --git a/functions_vars.html b/functions_vars.html new file mode 100644 index 000000000..bf029f274 --- /dev/null +++ b/functions_vars.html @@ -0,0 +1,163 @@ + + + + + + +Monitoring: Class Members - Variables + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
+ + + + diff --git a/globals.html b/globals.html new file mode 100644 index 000000000..46b252162 --- /dev/null +++ b/globals.html @@ -0,0 +1,132 @@ + + + + + + +Monitoring: File Members + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented file members with links to the documentation:
+
+
+ + + + diff --git a/globals_func.html b/globals_func.html new file mode 100644 index 000000000..b9cb7518e --- /dev/null +++ b/globals_func.html @@ -0,0 +1,132 @@ + + + + + + +Monitoring: File Members + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
+ + + + diff --git a/graph_legend.dot b/graph_legend.dot new file mode 100644 index 000000000..766344cb9 --- /dev/null +++ b/graph_legend.dot @@ -0,0 +1,24 @@ +digraph "Graph Legend" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node9 [shape="box",label="Inherited",fontsize="10",height=0.2,width=0.4,fontname="Helvetica",fillcolor="grey75",style="filled" fontcolor="black"]; + Node10 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node10 [shape="box",label="PublicBase",fontsize="10",height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classPublicBase.html"]; + Node11 -> Node10 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node11 [shape="box",label="Truncated",fontsize="10",height=0.2,width=0.4,fontname="Helvetica",color="red",URL="$classTruncated.html"]; + Node13 -> Node9 [dir="back",color="darkgreen",fontsize="10",style="solid",fontname="Helvetica"]; + Node13 [shape="box",label="ProtectedBase",fontsize="10",height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classProtectedBase.html"]; + Node14 -> Node9 [dir="back",color="firebrick4",fontsize="10",style="solid",fontname="Helvetica"]; + Node14 [shape="box",label="PrivateBase",fontsize="10",height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classPrivateBase.html"]; + Node15 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node15 [shape="box",label="Undocumented",fontsize="10",height=0.2,width=0.4,fontname="Helvetica",color="grey75"]; + Node16 -> Node9 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node16 [shape="box",label="Templ< int >",fontsize="10",height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classTempl.html"]; + Node17 -> Node16 [dir="back",color="orange",fontsize="10",style="dashed",label="< int >",fontname="Helvetica"]; + Node17 [shape="box",label="Templ< T >",fontsize="10",height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classTempl.html"]; + Node18 -> Node9 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label="m_usedClass",fontname="Helvetica"]; + Node18 [shape="box",label="Used",fontsize="10",height=0.2,width=0.4,fontname="Helvetica",color="black",URL="$classUsed.html"]; +} diff --git a/graph_legend.html b/graph_legend.html new file mode 100644 index 000000000..f15ad157c --- /dev/null +++ b/graph_legend.html @@ -0,0 +1,145 @@ + + + + + + +Monitoring: Graph Legend + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Graph Legend
+
+
+

This page explains how to interpret the graphs that are generated by doxygen.

+

Consider the following example:

1 /*! Invisible class because of truncation */
2 class Invisible { };
3 
4 /*! Truncated class, inheritance relation is hidden */
5 class Truncated : public Invisible { };
6 
7 /* Class not documented with doxygen comments */
8 class Undocumented { };
9 
10 /*! Class that is inherited using public inheritance */
11 class PublicBase : public Truncated { };
12 
13 /*! A template class */
14 template<class T> class Templ { };
15 
16 /*! Class that is inherited using protected inheritance */
17 class ProtectedBase { };
18 
19 /*! Class that is inherited using private inheritance */
20 class PrivateBase { };
21 
22 /*! Class that is used by the Inherited class */
23 class Used { };
24 
25 /*! Super class that inherits a number of other classes */
26 class Inherited : public PublicBase,
27  protected ProtectedBase,
28  private PrivateBase,
29  public Undocumented,
30  public Templ<int>
31 {
32  private:
33  Used *m_usedClass;
34 };

This will result in the following graph:

+

The boxes in the above graph have the following meaning:

+
    +
  • +A filled gray box represents the struct or class for which the graph is generated.
  • +
  • +A box with a black border denotes a documented struct or class.
  • +
  • +A box with a gray border denotes an undocumented struct or class.
  • +
  • +A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.
  • +
+

The arrows have the following meaning:

+
    +
  • +A dark blue arrow is used to visualize a public inheritance relation between two classes.
  • +
  • +A dark green arrow is used for protected inheritance.
  • +
  • +A dark red arrow is used for private inheritance.
  • +
  • +A purple dashed arrow is used if a class is contained or used by another class. The arrow is labeled with the variable(s) through which the pointed class or struct is accessible.
  • +
  • +A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labeled with the template parameters of the instance.
  • +
+
+
+ + + + diff --git a/graph_legend.md5 b/graph_legend.md5 new file mode 100644 index 000000000..c221457c0 --- /dev/null +++ b/graph_legend.md5 @@ -0,0 +1 @@ +e7970ae9ba2c10ea773e560743b0d538 \ No newline at end of file diff --git a/graph_legend.svg b/graph_legend.svg new file mode 100644 index 000000000..6897212d5 --- /dev/null +++ b/graph_legend.svg @@ -0,0 +1,120 @@ + + + + + + +Graph Legend + +Node9 + +Inherited + + +Node10 + + +PublicBase + + + + +Node10->Node9 + + + + +Node11 + + +Truncated + + + + +Node11->Node10 + + + + +Node13 + + +ProtectedBase + + + + +Node13->Node9 + + + + +Node14 + + +PrivateBase + + + + +Node14->Node9 + + + + +Node15 + +Undocumented + + +Node15->Node9 + + + + +Node16 + + +Templ< int > + + + + +Node16->Node9 + + + + +Node17 + + +Templ< T > + + + + +Node17->Node16 + + +< int > + + +Node18 + + +Used + + + + +Node18->Node9 + + +m_usedClass + + + diff --git a/hierarchy.html b/hierarchy.html new file mode 100644 index 000000000..fbf4b1cee --- /dev/null +++ b/hierarchy.html @@ -0,0 +1,162 @@ + + + + + + +Monitoring: Class Hierarchy + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Class Hierarchy
+
+
+
+

Go to the graphical class hierarchy

+This inheritance list is sorted roughly, but not completely, alphabetically:
+
[detail level 12]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 Co2::monitoring::BackendBackend pure virtual interface
 Co2::monitoring::backends::ApMonBackendBackend that uses AppMon (MonALISA)
 Co2::monitoring::backends::InfluxDBBackend that sends metrics to InfluxDB time-series databse
 Co2::monitoring::backends::NoopNo-op backend
 Co2::monitoring::backends::StdOutPrints metrics to standard output via std::cout
 Co2::monitoring::DerivedMetricsEnables Calculation of derived metrics
 Cexception
 Co2::monitoring::MonitoringExceptionInternal monitoring exception
 Co2::monitoring::MetricRepresents a metric including value, type of the value, name, timestamp and tags
 Co2::monitoring::MonitoringMain class that collects metrics from user and dispatches them to selected monitoring backends
 Co2::monitoring::MonitoringFactoryMonitoring and monitoring backends factory
 Co2::monitoring::MonLoggerSimple Monitoring logging class
 Co2::monitoring::ProcessDetailsCollects process and machine related details such as PID, process name, hostname
 Co2::monitoring::ProcessMonitorMonitors current process and/or other processes running at the same machien
 Co2::monitoring::transports::TransportInterfaceTransport interface for backends
 Co2::monitoring::transports::HTTPHTTP POST transport
 Co2::monitoring::transports::KafkaTransport that sends string formatted metrics via Kafka
 Co2::monitoring::transports::StdOutTransport that sends string formatted metrics via StdOut
 Co2::monitoring::transports::TCPTransport that sends string formatted metrics via TCP
 Co2::monitoring::transports::UDPTransport that sends string formatted metrics via UDP
 Co2::monitoring::transports::UnixTransport that sends string formatted metrics via Unix datagram socket
 Chttp::url
 Co2::monitoring::VariantVisitorAddAdds boost variants
 Co2::monitoring::VariantVisitorRateSubtracts boost variants in order to calculate rate
 CTs
 Co2::monitoring::backends::overloaded< Ts >
 Co2::monitoring::backends::overloaded< Ts >
 Co2::monitoring::backends::overloaded< Ts >
 Coverloaded< Ts >
+
+
+
+ + + + diff --git a/hierarchy.js b/hierarchy.js new file mode 100644 index 000000000..d7ef5e665 --- /dev/null +++ b/hierarchy.js @@ -0,0 +1,36 @@ +var hierarchy = +[ + [ "o2::monitoring::Backend", "classo2_1_1monitoring_1_1Backend.html", [ + [ "o2::monitoring::backends::ApMonBackend", "classo2_1_1monitoring_1_1backends_1_1ApMonBackend.html", null ], + [ "o2::monitoring::backends::InfluxDB", "classo2_1_1monitoring_1_1backends_1_1InfluxDB.html", null ], + [ "o2::monitoring::backends::Noop", "classo2_1_1monitoring_1_1backends_1_1Noop.html", null ], + [ "o2::monitoring::backends::StdOut", "classo2_1_1monitoring_1_1backends_1_1StdOut.html", null ] + ] ], + [ "o2::monitoring::DerivedMetrics", "classo2_1_1monitoring_1_1DerivedMetrics.html", null ], + [ "exception", null, [ + [ "o2::monitoring::MonitoringException", "classo2_1_1monitoring_1_1MonitoringException.html", null ] + ] ], + [ "o2::monitoring::Metric", "classo2_1_1monitoring_1_1Metric.html", null ], + [ "o2::monitoring::Monitoring", "classo2_1_1monitoring_1_1Monitoring.html", null ], + [ "o2::monitoring::MonitoringFactory", "classo2_1_1monitoring_1_1MonitoringFactory.html", null ], + [ "o2::monitoring::MonLogger", "classo2_1_1monitoring_1_1MonLogger.html", null ], + [ "o2::monitoring::ProcessDetails", "classo2_1_1monitoring_1_1ProcessDetails.html", null ], + [ "o2::monitoring::ProcessMonitor", "classo2_1_1monitoring_1_1ProcessMonitor.html", null ], + [ "o2::monitoring::transports::TransportInterface", "classo2_1_1monitoring_1_1transports_1_1TransportInterface.html", [ + [ "o2::monitoring::transports::HTTP", "classo2_1_1monitoring_1_1transports_1_1HTTP.html", null ], + [ "o2::monitoring::transports::Kafka", "classo2_1_1monitoring_1_1transports_1_1Kafka.html", null ], + [ "o2::monitoring::transports::StdOut", "classo2_1_1monitoring_1_1transports_1_1StdOut.html", null ], + [ "o2::monitoring::transports::TCP", "classo2_1_1monitoring_1_1transports_1_1TCP.html", null ], + [ "o2::monitoring::transports::UDP", "classo2_1_1monitoring_1_1transports_1_1UDP.html", null ], + [ "o2::monitoring::transports::Unix", "classo2_1_1monitoring_1_1transports_1_1Unix.html", null ] + ] ], + [ "http::url", "structhttp_1_1url.html", null ], + [ "o2::monitoring::VariantVisitorAdd", "classo2_1_1monitoring_1_1VariantVisitorAdd.html", null ], + [ "o2::monitoring::VariantVisitorRate", "classo2_1_1monitoring_1_1VariantVisitorRate.html", null ], + [ "Ts", "classo2_1_1monitoring_1_1backends_1_1Ts.html", [ + [ "o2::monitoring::backends::overloaded< Ts >", "structo2_1_1monitoring_1_1backends_1_1overloaded.html", null ], + [ "o2::monitoring::backends::overloaded< Ts >", "structo2_1_1monitoring_1_1backends_1_1overloaded.html", null ], + [ "o2::monitoring::backends::overloaded< Ts >", "structo2_1_1monitoring_1_1backends_1_1overloaded.html", null ], + [ "overloaded< Ts >", "structoverloaded.html", null ] + ] ] +]; \ No newline at end of file diff --git a/include/Monitoring/Backend.h b/include/Monitoring/Backend.h deleted file mode 100644 index cca7e692f..000000000 --- a/include/Monitoring/Backend.h +++ /dev/null @@ -1,82 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -/// -/// \file Backend.h -/// \author Adam Wegrzynek -/// - -#ifndef ALICEO2_MONITORING_CORE_BACKEND_H -#define ALICEO2_MONITORING_CORE_BACKEND_H - -#include -#include -#include -#include "Monitoring/Metric.h" - -namespace o2 -{ -/// ALICE O2 Monitoring system -namespace monitoring -{ - -/// \brief Backend pure virtual interface -/// -/// Interface that allows to send a metric to remote backend. -/// In addition, default tagset (for all handled metrics) can be created. -class Backend -{ - private: - /// Verbosity level - Verbosity verbosityLevel; -protected: - /// Run number - std::atomic mRunNumber; - - public: - /// Default constructor - Backend() { - mRunNumber = 0; - verbosityLevel = Verbosity::Info; - } - - /// Run number setter - virtual void setRunNumber(uint32_t runNumber) { - mRunNumber = runNumber; - } - - /// Default destructor - virtual ~Backend() = default; - - /// Set verbosity level (deprecated) - [[deprecated("Use setVerbosity() instead")]] - void setVerbosisty(Verbosity level) { verbosityLevel = level; } - - /// Set verbosity level - void setVerbosity(Verbosity level) { verbosityLevel = level; } - - /// Get verbosity level - Verbosity getVerbosity() { return verbosityLevel; } - - /// Sends metric via backend - virtual void send(const Metric& metric) = 0; - - /// Sends multiple metrics not related to each other - virtual void send(std::vector&& metrics) = 0; - - /// Sets a tag - virtual void addGlobalTag(std::string_view name, std::string_view value) = 0; -}; - -} // namespace monitoring -} // namespace o2 - -#endif // ALICEO2_MONITORING_CORE_BACKEND_H diff --git a/include/Monitoring/DerivedMetrics.h b/include/Monitoring/DerivedMetrics.h deleted file mode 100644 index 2f71c5870..000000000 --- a/include/Monitoring/DerivedMetrics.h +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -/// -/// \file DerivedMetrics.h -/// \author Adam Wegrzynek -/// - -#ifndef ALICEO2_MONITORING_CORE_DERIVED_METRICS_H -#define ALICEO2_MONITORING_CORE_DERIVED_METRICS_H - -#include -#include -#include -#include -#include - -#include "Monitoring/Metric.h" - -namespace o2 -{ -/// ALICE O2 Monitoring system -namespace monitoring -{ - -/// Available derived metric modes -enum class DerivedMetricMode { RATE, - INCREMENT, - NONE, - SUPPRESS }; - -/// \brief Enables Calculation of derived metrics -/// -/// Calculates derived metrics such as rate or increment values... (available modes are enumerated in DerivedMetricMode class) -/// For this purpose metrics are stored in a container. -class DerivedMetrics -{ - public: - /// Default constructor - DerivedMetrics() = default; - - /// Default destructor - ~DerivedMetrics() = default; - - /// Entry method to DerivedMetrics - /// Switches over processing modes: rate and increment - bool process(Metric& metric, DerivedMetricMode mode); - - static std::chrono::seconds mSuppressTimeout; - private: - /// Metrics store necessary for derived metrics - std::unordered_map mStorage; -}; - -} // namespace monitoring -} // namespace o2 - -#endif // ALICEO2_MONITORING_CORE_DERIVED_METRICS_H diff --git a/include/Monitoring/Metric.h b/include/Monitoring/Metric.h deleted file mode 100644 index 1a741d301..000000000 --- a/include/Monitoring/Metric.h +++ /dev/null @@ -1,200 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -/// -/// \file Metric.h -/// \author Adam Wegrzynek -/// - -#ifndef ALICEO2_MONITORING_CORE_METRIC_H -#define ALICEO2_MONITORING_CORE_METRIC_H - -#include -#include -#include -#include -#include -#include -#include "Tags.h" - -namespace o2 -{ -/// ALICE O2 Monitoring system -namespace monitoring -{ - -/// Metric and Backedn verbosity -enum class Verbosity : short { Prod, - Info, - Debug }; - -/// Metric types -enum MetricType { INT = 0, - STRING = 1, - DOUBLE = 2, - UINT64_T = 3 }; - -class DerivedMetrics; - -/// \brief Represents a metric including value, type of the value, name, timestamp and tags -class Metric -{ - public: - /// Integer metric construtor - /// \param value metric value (int) - /// \param name metric name - Metric(int value, const std::string& name, Verbosity verbosity = Metric::DefaultVerbosity); - - /// String metric construtor - /// \param value metric value (string) - /// \param name the metric name - Metric(std::string value, const std::string& name, Verbosity verbosity = Metric::DefaultVerbosity); - - /// Double metric constructor - /// \param value metric value (double) - /// \param name metric name - Metric(double value, const std::string& name, Verbosity verbosity = Metric::DefaultVerbosity); - - /// uint64_t metric constructor - /// \param value metric value (uint64_t) - /// \param name metric name - Metric(uint64_t value, const std::string& name, Verbosity verbosity = Metric::DefaultVerbosity); - - /// Constructor that does not require any value to be specified, .addValue needs to be used - /// \param name metric name - Metric(const std::string& name, Verbosity verbosity = Metric::DefaultVerbosity, const std::chrono::time_point& timestamp = Metric::getCurrentTimestamp()); - - /// Adds additional int value to metric - /// \param value - /// \param name - Metric&& addValue(int value, const std::string& name); - - /// Adds additional double value to metric - /// \param value - /// \param name - Metric&& addValue(double value, const std::string& name); - - /// Adds additional uint64_t value to metric - /// \param value - /// \param name - Metric&& addValue(uint64_t value, const std::string& name); - - /// Adds additional string value to metric - /// \param value - /// \param name - Metric&& addValue(std::string value, const std::string& name); - - /// Adds additional variant value to metric - /// \param value - /// \param name - Metric&& addValue(const std::variant& value, const std::string& name); - - /// Increases metric value by provided value - /// \param value value that metric will be increased - /// \param name value name - Metric&& increaseValue(const std::variant& value, const std::string& name = "value"); - - /// Default destructor - ~Metric() = default; - - /// Name getter - /// \return metric name - const std::string& getName() const; - - /// Timestamp getter - /// \return metric timestamp - std::chrono::time_point getTimestamp() const; - - /// Values getter - /// \return vector of values - const std::vector>>& getValues() const; - - /// First value getter - /// \return first value as pair - const std::pair>& getFirstValue() const; - - /// Values vector size getter - std::size_t getValuesSize() const noexcept; - - /// Tag list getter - /// \return tags - const std::vector>& getTags() const; - - /// Add user defined tags - /// \param key enum tag key - /// \param value emum tag value - /// \return r-value to "this" - to be able to chain methods - Metric&& addTag(tags::Key key, tags::Value value); - - /// Add user defined tags - /// \param key enum tag key - /// \param value numeric value - /// \return r-value to "this" - to be able to chain methods - Metric&& addTag(tags::Key key, unsigned short int number); - - /// Verbosity getter - Verbosity getVerbosity(); - - /// Generetes current timestamp - /// return timestamp as std::chrono::system_clock - static auto getCurrentTimestamp() -> decltype(std::chrono::system_clock::now()); - - /// Sets default verbosity of metrics - static void setDefaultVerbosity(Verbosity verbosity); - - /// Default metric verbosity - static Verbosity DefaultVerbosity; - - /// Regex policy setter - static void setVerbosityPolicy(Verbosity verbosity, const std::regex& regex); - - /// Whether timestamp should be included or not - static bool includeTimestamp; - - /// This is required for backward compability with boost::variant and old StdOut format - int getFirstValueType() const; - - protected: - /// Allow DerivedMetrics access to setTags - friend class o2::monitoring::DerivedMetrics; - - /// Set full vector of tags - Metric&& setTags(std::vector>&& tags); - - /// Metric values - std::vector>> mValues; - - /// Metric name - std::string mName; - - /// Metric timestamp - std::chrono::time_point mTimestamp; - - /// Metric tags - std::vector> mTags; - - /// Metric verbosity - Verbosity mVerbosity; - - /// Regex policy map - static std::map::type, std::regex> mRegexPolicy; - - /// Overwirte verbosity using regex policy - void overwriteVerbosity(); - - /// Default value name - static constexpr char mDefaultValueName[] = "value"; -}; - -} // namespace monitoring -} // namespace o2 - -#endif // ALICEO2_MONITORING_CORE_METRIC_H diff --git a/include/Monitoring/Monitoring.h b/include/Monitoring/Monitoring.h deleted file mode 100644 index d3c78274d..000000000 --- a/include/Monitoring/Monitoring.h +++ /dev/null @@ -1,154 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -/// -/// \file Monitoring.h -/// \author Adam Wegrzynek -/// - -#ifndef ALICEO2_MONITORING_MONITORING_H -#define ALICEO2_MONITORING_MONITORING_H - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "Monitoring/Backend.h" -#include "Monitoring/DerivedMetrics.h" -#include "Monitoring/ProcessMonitor.h" - -namespace o2 -{ -/// ALICE O2 Monitoring system -namespace monitoring -{ - -/// \brief Main class that collects metrics from user and dispatches them to selected monitoring backends. -/// -/// Collects user-defined metrics (seeMetric class) and pushes them through all selected backends (seeBackend). -/// Calculates derived metrics such as rate and increment value (seeDerivedMetrics class). -/// Adds default tags to each metric: proces name, hostname (seeProcessDetails class) -/// Monitors the process itself - including memory, cpu and network usage (seeProcessMonitor class). -class Monitoring -{ - public: - /// Disable copy constructor - Monitoring& operator=(const Monitoring&) = delete; - - /// Disable copy constructor - Monitoring(const Monitoring&) = delete; - - /// Instantiates derived metrics processor (see DerivedMetrics) and process monitor (seeProcessMonitor). - Monitoring(); - - /// Creates and appends backend to the backend list - void addBackend(std::unique_ptr backend); - - /// Joins process monitor thread if possible - ~Monitoring(); - - /// Sends a metric to all avaliabes backends - /// If DerivedMetricMode is specified it generates and sends derived metric - /// \param metric r-value to metric object - /// \param mode Derived metric mode - void send(Metric&& metric, DerivedMetricMode mode = DerivedMetricMode::NONE); - - /// Enables process monitoring - /// \param interval refresh interval - /// \param enabledMeasurements vector of monitor measurements, eg. PmMeasurement::Cpu - void enableProcessMonitoring(const unsigned int interval = 5, std::vector enabledMeasurements = {PmMeasurement::Cpu, PmMeasurement::Mem, PmMeasurement::Smaps}); - - /// Flushes metric buffer (this can also happen when buffer is full) - void flushBuffer(); - - /// Enables metric buffering - /// \param size buffer size - void enableBuffering(const std::size_t size = 128); - - /// Adds global tag - /// \param name tag name - /// \param value tag value - void addGlobalTag(std::string_view name, std::string_view value); - - /// Adds global tag - /// \param name tag name - /// \param value tag value - void addGlobalTag(tags::Key key, tags::Value value); - - /// Temporary add helper function to add hostname tag as it is not set by default anymore (since 3.15.0) - void addHostnameTag(); - - /// Sets run number - /// \param name run run number - void setRunNumber(uint32_t run); - private: - /// Sends multiple (not related to each other) metrics - /// \param metrics vector of metrics - void transmit(std::vector&& metrics); - - /// Flush buffer of desired verbosity - void flushBuffer(short index); - - /// Matches verbosity of a backend and a metric in order to decide whether metric should be send to the backend - bool matchVerbosity(Verbosity backend, Verbosity metric); - - /// Derived metrics handler - /// \see class DerivedMetrics - std::unique_ptr mDerivedHandler; - - /// Vector of backends (where metrics are passed to) - std::vector> mBackends; - - /// Pushes metric to all backends or to the buffer - void transmit(Metric&& metric); - - /// States whether Process Monitor thread is running - std::atomic mMonitorRunning; - - /// Process Monitor thread - std::thread mMonitorThread; - - /// Process Monitor object that sends updates about the process itself - std::unique_ptr mProcessMonitor; - - /// Push metric loop - void pushLoop(); - - /// Metric buffer - std::unordered_map::type, std::vector> mStorage; - - /// Flag stating whether metric buffering is enabled - bool mBuffering; - - /// Size of buffer - std::size_t mBufferSize; - - /// Store for automatically pushed metrics - //std::deque mPushStore; - - /// Process monitor interval - std::atomic mProcessMonitoringInterval; - - /// Automatic metric push interval - //std::atomic mAutoPushInterval; -}; - -} // namespace monitoring -} // namespace o2 - -#endif // ALICEO2_MONITORING_MONITORING_H diff --git a/include/Monitoring/MonitoringFactory.h b/include/Monitoring/MonitoringFactory.h deleted file mode 100644 index dfef5dcc7..000000000 --- a/include/Monitoring/MonitoringFactory.h +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -/// -/// \file MonitoringFactory.h -/// \author Adam Wegrzynek -/// - -#ifndef ALICEO2_MONITORING_FACTORY_H -#define ALICEO2_MONITORING_FACTORY_H - -#include "Monitoring/Monitoring.h" -#include "Monitoring/PullClient.h" - -namespace o2 -{ -/// ALICE O2 Monitoring system -namespace monitoring -{ - -/// \brief Monitoring and monitoring backends factory -class MonitoringFactory -{ - public: - /// Disables copy constructor - MonitoringFactory& operator=(const MonitoringFactory&) = delete; - MonitoringFactory(const MonitoringFactory&) = delete; - - /// Provides single instance on Monitoring Monitoring (singleton) - /// \return renerence to Monitoring instance - /// \throw MonitoringException when backend initialisation failed - static std::unique_ptr Get(std::string urlsString) noexcept(false); - - /// Provides a Monitoring backend based on the URL - /// \return monitoring backend - /// \throw MonitoringException when backend initialisation failed - static std::unique_ptr GetBackend(std::string& url); - static std::unique_ptr GetPullClient(const std::string &url, const std::vector& topics, const std::string &label = "o2-monitoring-group"); - private: - /// Private constructor disallows to create instance of Factory - MonitoringFactory() = default; - - /// Sets backend verbosity based on the URL path - static void SetVerbosity(std::string selected, std::unique_ptr& backend); -}; - -} // namespace monitoring -} // namespace o2 - -#endif // ALICEO2_MONITORING_FACTORY_H diff --git a/include/Monitoring/ProcessMonitor.h b/include/Monitoring/ProcessMonitor.h deleted file mode 100644 index 5b4635e55..000000000 --- a/include/Monitoring/ProcessMonitor.h +++ /dev/null @@ -1,129 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -/// -/// \file ProcessMonitor.h -/// \author Adam Wegrzynek -/// - -#ifndef ALICEO2_MONITORING_CORE_PROCESSMONITOR_H -#define ALICEO2_MONITORING_CORE_PROCESSMONITOR_H - -#include -#include -#include -#include -#include - -#include "Monitoring/Metric.h" - -namespace o2 -{ -/// ALICE O2 Monitoring system -namespace monitoring -{ - -enum class PmMeasurement : short { - Cpu, - Mem, - Smaps -}; - -/// Monitors current process and/or other processes running at the same machien -class ProcessMonitor -{ - friend class Monitoring; - - public: - enum { - MEMORY_USAGE_PERCENTAGE = 0, - VIRTUAL_MEMORY_SIZE, - RESIDENT_SET_SIZE, - CPU_USED_PERCENTAGE, - INVOLUNTARY_CONTEXT_SWITCHES, - VOLUNTARY_CONTEXT_SWITCHES, - CPU_USED_ABSOLUTE, - AVG_RESIDENT_SET_SIZE, - AVG_VIRTUAL_MEMORY_SIZE, - AVG_CPU_USED_PERCENTAGE, - ACCUMULATED_CPU_TIME, - PSS, - PRIVATE_CLEAN, - PRIVATE_DIRTY, - AVAILABLE_METRICS_SIZE - }; - - static std::vector getAvailableMetricsNames(); - std::vector getPerformanceMetrics(); - - /// Sets PID and total memory - ProcessMonitor(); - - /// Default destructor - ~ProcessMonitor() = default; - - /// Set initial variables for CPU usage calculations - void init(); - - /// Enable given measurement - void enable(PmMeasurement measurement); - - private: - /// States which measurements are enabled - std::array mEnabledMeasurements; - - double splitStatusLineAndRetriveValue(const std::string& line) const; - - /// Retrievs total memory size from /proc/meminfo - void setTotalMemory(); - - static constexpr const char* metricsNames[] = {"memoryUsagePercentage", "virtualMemorySize", "residentSetSize", - "cpuUsedPercentage", "involuntaryContextSwitches", "voluntaryContextSwitches", "cpuUsedAbsolute", - "averageResidentSetSize", "averageVirtualMemorySize", "averageCpuUsedPercentage", - "cpuTimeConsumedByProcess", "proportionalSetSize", "memoryPrivateClean", "memoryPrivateDirty"}; - - static constexpr unsigned int VM_SIZE_INDEX = 18; - static constexpr unsigned int VM_RSS_INDEX = 22; - - /// PIDs that are monitored - unsigned int mPid; - - /// Total memory size - unsigned int mTotalMemory; - - /// 'getrusage' values from last execution - struct rusage mPreviousGetrUsage; - - ///each measurement will be saved to compute average/accumulation usage - std::vector mVmSizeMeasurements; - std::vector mVmRssMeasurements; - std::vector mCpuMicroSeconds; - std::vector mCpuPerctange; - - /// Timestamp when process monitoring was executed last time - std::chrono::high_resolution_clock::time_point mTimeLastRun; - - /// Retrieves virtual memory and resident set size usage - std::vector getMemoryUsage(); - - /// Retrieves memory maping metrics - std::vector getSmaps(); - - /// Retrieves CPU usage (%) and number of context switches during the interval - std::vector getCpuAndContexts(); - - std::vector makeLastMeasurementAndGetMetrics(); -}; - -} // namespace monitoring -} // namespace o2 - -#endif // ALICEO2_MONITORING_CORE_PROCESSMONITOR_H diff --git a/include/Monitoring/PullClient.h b/include/Monitoring/PullClient.h deleted file mode 100644 index 393a78f87..000000000 --- a/include/Monitoring/PullClient.h +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -/// -/// \file PullClient.h -/// \author Adam Wegrzynek -/// - -#ifndef ALICEO2_MONITORING_CORE_PULLCLIENT_H -#define ALICEO2_MONITORING_CORE_PULLCLIENT_H - -#include -#include - -namespace o2 -{ -/// ALICE O2 Monitoring system -namespace monitoring -{ - -/// \brief PullClient pure virtual interface -/// -/// Interface that allows to send a metric to remote backend. -/// In addition, default tagset (for all handled metrics) can be created. -class PullClient -{ - public: - /// Default destructor - virtual ~PullClient() = default; - virtual std::vector> pull() = 0; -}; - -} // namespace monitoring -} // namespace o2 - -#endif // ALICEO2_MONITORING_CORE_PULLCLIENT_H diff --git a/include/Monitoring/Tags.h b/include/Monitoring/Tags.h deleted file mode 100644 index af51052a0..000000000 --- a/include/Monitoring/Tags.h +++ /dev/null @@ -1,183 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -/// -/// \file Tags.h -/// \author Adam Wegrzynek -/// - -#ifndef ALICEO2_MONITORING_TAG_H -#define ALICEO2_MONITORING_TAG_H - -#include -#include -#include - -namespace o2 -{ -/// ALICE O2 Monitoring system -namespace monitoring -{ - -namespace tags -{ -using namespace std::string_view_literals; - -// Tag keys -enum class Key : unsigned short int { - Hostname, - Rolename, - Name, - Detector, - Subsystem, - CRU, - FLP, - EPN, - Unit, - ID, - Type, - CRORC, - SerialId, - Endpoint, - NUMA -}; - -/// Tag keys array -static constexpr std::array TAG_KEY = { - "hostname"sv, - "rolename"sv, - "name"sv, - "detector"sv, - "subsystem"sv, - "CRU"sv, - "FLP"sv, - "EPN"sv, - "unit"sv, - "id"sv, - "type"sv, - "CRORC"sv, - "serialId"sv, - "endpoint"sv, - "NUMA"sv -}; - -// Tag values -enum class Value : unsigned short int { - Null, - AD, // 1 - CPV, // 2 - EMC, // 3 - FMD, // 4 - HMP, // 5 - MCH, // 6 - MTR, // 7 - PHS, // 8 - PMD, // 9 - ITS, // 10 - T0, // 11 - TOF, // 12 - TPC, // 13 - TRD, // 14 - V0, // 15 - QC, // 16 - Readout, // 17 - DPL, // 18 - CRU, // 19 - Bytes, // 20 - Megabytes, // 21 - Gigabytes, // 22 - Bits, // 23 - Megabits, // 24 - Gigabits, // 25 - bps, // 26 - Mbps, // 27 - Gbps, // 28 - Nanoseconds, // 29 - Microseconds, // 30 - Milliseconds, // 31 - Seconds, // 32 - PerSecond, // 33 - PerCycle, // 34 - PerRun, // 35 - Monitoring, // 36 - CRORC, // 37 - ACO, // 38 - Analysis, // 39 - DataDistribution, // 40 - StfBuilder, // 41 - StfSender, // 42 - TfBuilder, // 43 - TfScheduler, // 44 - DataSampling, // 45 - Mergers // 46 -}; - -// Tag value array -static constexpr std::array TAG_VALUE = {{ - "Null"sv, - "AD"sv, // 1 - "CPV"sv, // 2 - "EMC"sv, // 3 - "FMD"sv, // 4 - "HMP"sv, // 5 - "MCH"sv, // 6 - "MTR"sv, // 7 - "PHS"sv, // 8 - "PHS"sv, // 9 - "PMD"sv, // 10 - "ITS"sv, // 11 - "TOF"sv, // 12 - "TPC"sv, // 13 - "TRD"sv, // 14 - "V0"sv, // 15 - "QC"sv, // 16 - "Readout"sv, // 17 - "DPL"sv, // 18 - "CRU"sv, // 19 - "B"sv, // 20 - "MB"sv, // 21 - "GB"sv, // 22 - "b"sv, // 23 - "Mb"sv, // 24 - "Gb"sv, // 25 - "bps"sv, // 26 - "Mbps"sv, // 27 - "Gbps"sv, // 28 - "ns"sv, // 29 - "us"sv, // 30 - "ms"sv, // 31 - "s"sv, // 32 - "ps"sv, // 33 - "pcycle"sv, // 34 - "prun"sv, // 35 - "monitoring"sv, // 36 - "CRORC"sv, // 37 - "ACO"sv, // 38 - "Analysis"sv,// 39 - "DD"sv, // 40 - "StfB"sv, // 41 - "StfS"sv, // 42 - "TfB"sv, // 43 - "TfS"sv, // 44 - "DS"sv, // 45 - "Mergers"sv // 46 -}}; - -static constexpr std::string_view GetValue(const int value) -{ - return TAG_VALUE[value]; -} - -} // namespace tags -} // namespace monitoring -} // namespace o2 - -#endif // ALICEO2_MONITORING_TAG_H diff --git a/index.html b/index.html new file mode 100644 index 000000000..3d2edb580 --- /dev/null +++ b/index.html @@ -0,0 +1,227 @@ + + + + + + +Monitoring: Monitoring + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Monitoring
+
+
+

+

Monitoring module injects user custom metrics and monitors the process. It supports multiple backends, protocols and data formats.

+

Table of contents

+
    +
  1. Installation
  2. +
  3. Getting started
  4. +
  5. Advanced features
  6. +
  7. System monitoring and server-side backends installation and configuration
  8. +
+

Installation

+

Click here if you don't have aliBuild installed
+

+
    +
  • Compile Monitoring and its dependencies via aliBuild
    1 aliBuild build Monitoring --defaults o2-dataflow
  • +
  • Load the environment for Monitoring (in the alice directory)
    1 alienv load Monitoring/latest
  • +
+

Getting started

+

Monitoring instance

+

Get an instance from MonitoringFactory by passing backend's URI(s) as a parameter (comma separated if more than one). The factory is accessible from o2::monitoring namespace.

+
using namespace o2::monitoring;
std::unique_ptr<Monitoring> monitoring = MonitoringFactory::Get("backend[-protocol]://host:port[/verbosity][?query]");

See the table below to find URIs for supported backends:

+ + + + + + + + + + + + + + + + + + + +
Backend name Transport URI backend[-protocol] URI query Default verbosity
No-op - no-op - -
InfluxDB UDP influxdb-udp - info
InfluxDB Unix socket influxdb-unix - info
InfluxDB StdOut influxdb-stdout - info
InfluxDB Kafka influxdb-kafka Kafka topic info
InfluxDB 2.x HTTP influxdbv2 org=ORG&bucket=BUCKET&token=TOKEN info
ApMon UDP apmon - info
StdOut - stdout, infologger [Prefix] debug
+

Metrics

+

A metric consist of 5 parameters:

    +
  • name - metric name
  • +
  • values - vector of value and value name pairs
  • +
  • timestamp - time of creation
  • +
  • verbosity - metric "severity"
  • +
  • tags - metric metadata represented as map
  • +
+ + + + + + + + + + + + + +
Parameter name Type Required Default
name string yes -
values map<string, int/double/string/uint64_t> no/1 -
timestamp time_point<system_clock> no current time
verbosity Enum (Debug/Info/Prod) no Verbosity::Info
tags map no host and process names
+

A metric can be constructed by providing required parameters (value and metric name, value name is set to value):

Metric{10, "name"}

Values

+

By default metric can be created with zero or one value (in such case value name is set to value). Any additional value may be added using .addValue method, therefore the following two metrics are identical:

Metric{10, "name"}
Metric{"name"}.addValue(10, "value")

Tags

+

Each metric can be tagged with any number of predefined tags. In order to do so use addTag(tags::Key, tags::Value) or addTag(tags::Key, unsigned short) methods. The latter method allows assigning numeric value to a tag.

+
Metric{10, "name"}.addTag(tags::Key::Subsystem, tags::Value::QC)

See the example: examples/2-TaggedMetrics.cxx.

+

Sending metric

+

Pass metric object to send method as l-value reference:

send({10, "name"})
send(Metric{20, "name"}.addTag(tags::Key::CRU, 123))
send(Metric{"throughput"}.addValue(100, "tx").addValue(200, "rx"))

See how it works in the example: examples/1-Basic.cxx.

+

Advanced features

+

Metric verbosity

+

There are 3 verbosity levels (the same as for backends): Debug, Info, Prod. By default it is set to Verbosity::Info. The default value can be overwritten using: Metric::setDefaultVerbosity(verbosity). To overwrite verbosity on per metric basis use third, optional parameter to metric constructor:

Metric{10, "name", Verbosity::Prod}

Metrics need to match backends verbosity in order to be sent, eg. backend with /info verbosity will accept Info and Prod metrics only.

+

Buffering metrics

+

In order to avoid sending each metric separately, metrics can be temporary stored in the buffer and flushed at the most convenient moment. This feature can be controlled with following two methods:

monitoring->enableBuffering(const std::size_t maxSize)
...
monitoring->flushBuffer();

enableBuffering takes maximum buffer size as its parameter. The buffer gets full all values are flushed automatically.

+

See how it works in the example: examples/10-Buffering.cxx.

+

Calculating derived values

+

This feature can calculate derived values. To do so, use optional DerivedMetricMode mode parameter of send method:

1 send(Metric&& metric, [DerivedMetricMode mode])

Two modes are available:

    +
  • DerivedMetricMode::RATE - rate between two following values,
  • +
  • DerivedMetricMode::INCREMENT - sum of all passed values.
  • +
+

The derived value is generated only from the first value of the metric and it is added to the same metric with the value name suffixed with _rate, _increment accordingly.

+

See how it works in the example: examples/4-RateDerivedMetric.cxx.

+

Global tags

+

Global tags are added to each metric sent using given monitoring instance. hostname is set as global by default.

+

You can add your own global tag by calling addGlobalTag(std::string_view key, std::string_view value) or addGlobalTag(tags::Key, tags::Value).

+

Process monitoring

+

This feature provides basic performance status of the process. Note that is runs in separate thread (without mutex).

+
enableProcessMonitoring([interval in seconds]);

Following metrics are generated every time interval: CPU measurements:

    +
  • cpuUsedPercentage - percentage of a core usage (kernel + user mode) over time interval
  • +
  • involuntaryContextSwitches - involuntary context switches over time interval
  • +
  • cpuUsedAbsolute - amount of time spent on process execution (in user and kernel mode) over time interval (expressed in microseconds)
  • +
+

Memory measurements: (Linux only)

    +
  • memoryUsagePercentage - ratio of the process's virtual memory to memory available on the machine
  • +
  • virtualMemorySize - virtual memory reserved by process (expressed in kB)
  • +
  • residentSetSize - resident set size reserved by process (expressed in kB)
  • +
+

Additional metrics are generated at the end of process execution: CPU measurements:

    +
  • cpuTimeConsumedByProcess - total amount of time spent on process execution (in user and kernel mode) (expressed in microseconds)
  • +
  • averageCpuUsedPercentage - average percentage of a core usage over time interval
  • +
+

Memory measurements: (Linux only)

    +
  • averageResidentSetSize - average resident set size used by process (expressed in kB)
  • +
  • averageVirtualMemorySize - average virtual memory used by process (expressed in kB)
  • +
+

### StdOut backend output format

1 [METRIC] <name>,<type> <values> <timestamp> <tags>

The prefix ([METRIC]) can be changed using query component.

+

Regex verbosity policy

+

Overwrite metric verbosity using regex expression:

1 Metric::setVerbosityPolicy(Verbosity verbosity, const std::regex& regex)

System monitoring, server-side backends installation and configuration

+

This guide explains manual installation. For ansible deployment see AliceO2Group/system-configuration gitlab repo.

+
+
+ + + + diff --git a/inherit_graph_0.dot b/inherit_graph_0.dot new file mode 100644 index 000000000..3541f06de --- /dev/null +++ b/inherit_graph_0.dot @@ -0,0 +1,9 @@ +digraph "Graphical Class Hierarchy" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="http::url",height=0.2,width=0.4,color="black",URL="$structhttp_1_1url.html"]; +} diff --git a/inherit_graph_0.map b/inherit_graph_0.map new file mode 100644 index 000000000..f0ac3a166 --- /dev/null +++ b/inherit_graph_0.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_0.md5 b/inherit_graph_0.md5 new file mode 100644 index 000000000..f0b67d25e --- /dev/null +++ b/inherit_graph_0.md5 @@ -0,0 +1 @@ +0ba2299e1a4a8f4aecc8bf8aa0b0a7d9 \ No newline at end of file diff --git a/inherit_graph_0.svg b/inherit_graph_0.svg new file mode 100644 index 000000000..fa21d846b --- /dev/null +++ b/inherit_graph_0.svg @@ -0,0 +1,20 @@ + + + + + + +Graphical Class Hierarchy + +Node1 + + +http::url + + + + + diff --git a/inherit_graph_1.dot b/inherit_graph_1.dot new file mode 100644 index 000000000..86ee025be --- /dev/null +++ b/inherit_graph_1.dot @@ -0,0 +1,17 @@ +digraph "Graphical Class Hierarchy" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="o2::monitoring::Backend",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1Backend.html",tooltip="Backend pure virtual interface. "]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="o2::monitoring::backends\l::ApMonBackend",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1backends_1_1ApMonBackend.html",tooltip="Backend that uses AppMon (MonALISA) "]; + Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="o2::monitoring::backends\l::InfluxDB",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1backends_1_1InfluxDB.html",tooltip="Backend that sends metrics to InfluxDB time-series databse. "]; + Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="o2::monitoring::backends\l::Noop",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1backends_1_1Noop.html",tooltip="No-op backend. "]; + Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="o2::monitoring::backends\l::StdOut",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1backends_1_1StdOut.html",tooltip="Prints metrics to standard output via std::cout. "]; +} diff --git a/inherit_graph_1.map b/inherit_graph_1.map new file mode 100644 index 000000000..22fd0d296 --- /dev/null +++ b/inherit_graph_1.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/inherit_graph_1.md5 b/inherit_graph_1.md5 new file mode 100644 index 000000000..86d1af65c --- /dev/null +++ b/inherit_graph_1.md5 @@ -0,0 +1 @@ +9bc3028e914a24f938d47885a046002d \ No newline at end of file diff --git a/inherit_graph_1.svg b/inherit_graph_1.svg new file mode 100644 index 000000000..83d0eebee --- /dev/null +++ b/inherit_graph_1.svg @@ -0,0 +1,76 @@ + + + + + + +Graphical Class Hierarchy + +Node1 + + +o2::monitoring::Backend + + + + +Node2 + + +o2::monitoring::backends +::ApMonBackend + + + + +Node1->Node2 + + + + +Node3 + + +o2::monitoring::backends +::InfluxDB + + + + +Node1->Node3 + + + + +Node4 + + +o2::monitoring::backends +::Noop + + + + +Node1->Node4 + + + + +Node5 + + +o2::monitoring::backends +::StdOut + + + + +Node1->Node5 + + + + + diff --git a/inherit_graph_10.dot b/inherit_graph_10.dot new file mode 100644 index 000000000..58012f833 --- /dev/null +++ b/inherit_graph_10.dot @@ -0,0 +1,21 @@ +digraph "Graphical Class Hierarchy" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="o2::monitoring::transports\l::TransportInterface",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1transports_1_1TransportInterface.html",tooltip="Transport interface for backends. "]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="o2::monitoring::transports\l::HTTP",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1transports_1_1HTTP.html",tooltip="HTTP POST transport. "]; + Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="o2::monitoring::transports\l::Kafka",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1transports_1_1Kafka.html",tooltip="Transport that sends string formatted metrics via Kafka. "]; + Node1 -> Node4 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node4 [label="o2::monitoring::transports\l::StdOut",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1transports_1_1StdOut.html",tooltip="Transport that sends string formatted metrics via StdOut. "]; + Node1 -> Node5 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node5 [label="o2::monitoring::transports::TCP",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1transports_1_1TCP.html",tooltip="Transport that sends string formatted metrics via TCP. "]; + Node1 -> Node6 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node6 [label="o2::monitoring::transports::UDP",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1transports_1_1UDP.html",tooltip="Transport that sends string formatted metrics via UDP. "]; + Node1 -> Node7 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node7 [label="o2::monitoring::transports\l::Unix",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1transports_1_1Unix.html",tooltip="Transport that sends string formatted metrics via Unix datagram socket. "]; +} diff --git a/inherit_graph_10.map b/inherit_graph_10.map new file mode 100644 index 000000000..a440ae9b4 --- /dev/null +++ b/inherit_graph_10.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/inherit_graph_10.md5 b/inherit_graph_10.md5 new file mode 100644 index 000000000..9350c85d7 --- /dev/null +++ b/inherit_graph_10.md5 @@ -0,0 +1 @@ +fbc021168b5674b250c70750a181cf6a \ No newline at end of file diff --git a/inherit_graph_10.svg b/inherit_graph_10.svg new file mode 100644 index 000000000..a601df04f --- /dev/null +++ b/inherit_graph_10.svg @@ -0,0 +1,103 @@ + + + + + + +Graphical Class Hierarchy + +Node1 + + +o2::monitoring::transports +::TransportInterface + + + + +Node2 + + +o2::monitoring::transports +::HTTP + + + + +Node1->Node2 + + + + +Node3 + + +o2::monitoring::transports +::Kafka + + + + +Node1->Node3 + + + + +Node4 + + +o2::monitoring::transports +::StdOut + + + + +Node1->Node4 + + + + +Node5 + + +o2::monitoring::transports::TCP + + + + +Node1->Node5 + + + + +Node6 + + +o2::monitoring::transports::UDP + + + + +Node1->Node6 + + + + +Node7 + + +o2::monitoring::transports +::Unix + + + + +Node1->Node7 + + + + + diff --git a/inherit_graph_11.dot b/inherit_graph_11.dot new file mode 100644 index 000000000..9de0391b9 --- /dev/null +++ b/inherit_graph_11.dot @@ -0,0 +1,9 @@ +digraph "Graphical Class Hierarchy" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="o2::monitoring::VariantVisitorAdd",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1VariantVisitorAdd.html",tooltip="Adds boost variants. "]; +} diff --git a/inherit_graph_11.map b/inherit_graph_11.map new file mode 100644 index 000000000..43de7e2d4 --- /dev/null +++ b/inherit_graph_11.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_11.md5 b/inherit_graph_11.md5 new file mode 100644 index 000000000..8dab440eb --- /dev/null +++ b/inherit_graph_11.md5 @@ -0,0 +1 @@ +c396f3cb8721b7f9ee7748b4326fb65d \ No newline at end of file diff --git a/inherit_graph_11.svg b/inherit_graph_11.svg new file mode 100644 index 000000000..41d6c71dc --- /dev/null +++ b/inherit_graph_11.svg @@ -0,0 +1,20 @@ + + + + + + +Graphical Class Hierarchy + +Node1 + + +o2::monitoring::VariantVisitorAdd + + + + + diff --git a/inherit_graph_12.dot b/inherit_graph_12.dot new file mode 100644 index 000000000..cdbdba0ff --- /dev/null +++ b/inherit_graph_12.dot @@ -0,0 +1,9 @@ +digraph "Graphical Class Hierarchy" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="o2::monitoring::VariantVisitorRate",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1VariantVisitorRate.html",tooltip="Subtracts boost variants in order to calculate rate. "]; +} diff --git a/inherit_graph_12.map b/inherit_graph_12.map new file mode 100644 index 000000000..c414a2dba --- /dev/null +++ b/inherit_graph_12.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_12.md5 b/inherit_graph_12.md5 new file mode 100644 index 000000000..40fde52dc --- /dev/null +++ b/inherit_graph_12.md5 @@ -0,0 +1 @@ +ad41c7fa555189356533ee7f24d521dd \ No newline at end of file diff --git a/inherit_graph_12.svg b/inherit_graph_12.svg new file mode 100644 index 000000000..fd61cfa36 --- /dev/null +++ b/inherit_graph_12.svg @@ -0,0 +1,20 @@ + + + + + + +Graphical Class Hierarchy + +Node1 + + +o2::monitoring::VariantVisitorRate + + + + + diff --git a/inherit_graph_13.dot b/inherit_graph_13.dot new file mode 100644 index 000000000..b4999e6bd --- /dev/null +++ b/inherit_graph_13.dot @@ -0,0 +1,13 @@ +digraph "Graphical Class Hierarchy" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="Ts",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1backends_1_1Ts.html"]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="o2::monitoring::backends\l::overloaded\< Ts \>",height=0.2,width=0.4,color="black",URL="$structo2_1_1monitoring_1_1backends_1_1overloaded.html"]; + Node1 -> Node3 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node3 [label="overloaded\< Ts \>",height=0.2,width=0.4,color="black",URL="$structoverloaded.html"]; +} diff --git a/inherit_graph_13.map b/inherit_graph_13.map new file mode 100644 index 000000000..27b375b7b --- /dev/null +++ b/inherit_graph_13.map @@ -0,0 +1,5 @@ + + + + + diff --git a/inherit_graph_13.md5 b/inherit_graph_13.md5 new file mode 100644 index 000000000..976052751 --- /dev/null +++ b/inherit_graph_13.md5 @@ -0,0 +1 @@ +ed6845acde98b4a77e7bd6289c116aa8 \ No newline at end of file diff --git a/inherit_graph_13.svg b/inherit_graph_13.svg new file mode 100644 index 000000000..8ad15357b --- /dev/null +++ b/inherit_graph_13.svg @@ -0,0 +1,47 @@ + + + + + + +Graphical Class Hierarchy + +Node1 + + +Ts + + + + +Node2 + + +o2::monitoring::backends +::overloaded< Ts > + + + + +Node1->Node2 + + + + +Node3 + + +overloaded< Ts > + + + + +Node1->Node3 + + + + + diff --git a/inherit_graph_2.dot b/inherit_graph_2.dot new file mode 100644 index 000000000..f870d8305 --- /dev/null +++ b/inherit_graph_2.dot @@ -0,0 +1,9 @@ +digraph "Graphical Class Hierarchy" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="o2::monitoring::DerivedMetrics",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1DerivedMetrics.html",tooltip="Enables Calculation of derived metrics. "]; +} diff --git a/inherit_graph_2.map b/inherit_graph_2.map new file mode 100644 index 000000000..677476351 --- /dev/null +++ b/inherit_graph_2.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_2.md5 b/inherit_graph_2.md5 new file mode 100644 index 000000000..e14dc1485 --- /dev/null +++ b/inherit_graph_2.md5 @@ -0,0 +1 @@ +076bbd51d497d2700fec95886acbb7f6 \ No newline at end of file diff --git a/inherit_graph_2.svg b/inherit_graph_2.svg new file mode 100644 index 000000000..a60a67807 --- /dev/null +++ b/inherit_graph_2.svg @@ -0,0 +1,20 @@ + + + + + + +Graphical Class Hierarchy + +Node1 + + +o2::monitoring::DerivedMetrics + + + + + diff --git a/inherit_graph_3.dot b/inherit_graph_3.dot new file mode 100644 index 000000000..f77ef22e5 --- /dev/null +++ b/inherit_graph_3.dot @@ -0,0 +1,9 @@ +digraph "Graphical Class Hierarchy" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="o2::monitoring::Metric",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1Metric.html",tooltip="Represents a metric including value, type of the value, name, timestamp and tags. ..."]; +} diff --git a/inherit_graph_3.map b/inherit_graph_3.map new file mode 100644 index 000000000..2d0a3a74a --- /dev/null +++ b/inherit_graph_3.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_3.md5 b/inherit_graph_3.md5 new file mode 100644 index 000000000..393fdedf5 --- /dev/null +++ b/inherit_graph_3.md5 @@ -0,0 +1 @@ +7e3ce679a49c62014244c1586b8a9b51 \ No newline at end of file diff --git a/inherit_graph_3.svg b/inherit_graph_3.svg new file mode 100644 index 000000000..fcb57e80f --- /dev/null +++ b/inherit_graph_3.svg @@ -0,0 +1,20 @@ + + + + + + +Graphical Class Hierarchy + +Node1 + + +o2::monitoring::Metric + + + + + diff --git a/inherit_graph_4.dot b/inherit_graph_4.dot new file mode 100644 index 000000000..749ac4e00 --- /dev/null +++ b/inherit_graph_4.dot @@ -0,0 +1,9 @@ +digraph "Graphical Class Hierarchy" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="o2::monitoring::Monitoring",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1Monitoring.html",tooltip="Main class that collects metrics from user and dispatches them to selected monitoring backends..."]; +} diff --git a/inherit_graph_4.map b/inherit_graph_4.map new file mode 100644 index 000000000..0ecebc5f6 --- /dev/null +++ b/inherit_graph_4.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_4.md5 b/inherit_graph_4.md5 new file mode 100644 index 000000000..66bb5f37b --- /dev/null +++ b/inherit_graph_4.md5 @@ -0,0 +1 @@ +786bec9df205d7544aebec6a77f644c6 \ No newline at end of file diff --git a/inherit_graph_4.svg b/inherit_graph_4.svg new file mode 100644 index 000000000..e06e928a7 --- /dev/null +++ b/inherit_graph_4.svg @@ -0,0 +1,20 @@ + + + + + + +Graphical Class Hierarchy + +Node1 + + +o2::monitoring::Monitoring + + + + + diff --git a/inherit_graph_5.dot b/inherit_graph_5.dot new file mode 100644 index 000000000..77a8e373f --- /dev/null +++ b/inherit_graph_5.dot @@ -0,0 +1,11 @@ +digraph "Graphical Class Hierarchy" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="exception",height=0.2,width=0.4,color="grey75"]; + Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"]; + Node2 [label="o2::monitoring::Monitoring\lException",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1MonitoringException.html",tooltip="Internal monitoring exception. "]; +} diff --git a/inherit_graph_5.map b/inherit_graph_5.map new file mode 100644 index 000000000..91157ee5a --- /dev/null +++ b/inherit_graph_5.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_5.md5 b/inherit_graph_5.md5 new file mode 100644 index 000000000..1d197797e --- /dev/null +++ b/inherit_graph_5.md5 @@ -0,0 +1 @@ +c1f5516d0343f77fed230d4e9bf34fa3 \ No newline at end of file diff --git a/inherit_graph_5.svg b/inherit_graph_5.svg new file mode 100644 index 000000000..89aa4b4b2 --- /dev/null +++ b/inherit_graph_5.svg @@ -0,0 +1,31 @@ + + + + + + +Graphical Class Hierarchy + +Node1 + +exception + + +Node2 + + +o2::monitoring::Monitoring +Exception + + + + +Node1->Node2 + + + + + diff --git a/inherit_graph_6.dot b/inherit_graph_6.dot new file mode 100644 index 000000000..f6a84bd08 --- /dev/null +++ b/inherit_graph_6.dot @@ -0,0 +1,9 @@ +digraph "Graphical Class Hierarchy" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="o2::monitoring::Monitoring\lFactory",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1MonitoringFactory.html",tooltip="Monitoring and monitoring backends factory. "]; +} diff --git a/inherit_graph_6.map b/inherit_graph_6.map new file mode 100644 index 000000000..f65516559 --- /dev/null +++ b/inherit_graph_6.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_6.md5 b/inherit_graph_6.md5 new file mode 100644 index 000000000..0c924dcc0 --- /dev/null +++ b/inherit_graph_6.md5 @@ -0,0 +1 @@ +0e0d3f8d9b290e74e37aeeb9742eab4a \ No newline at end of file diff --git a/inherit_graph_6.svg b/inherit_graph_6.svg new file mode 100644 index 000000000..ebd7039b0 --- /dev/null +++ b/inherit_graph_6.svg @@ -0,0 +1,21 @@ + + + + + + +Graphical Class Hierarchy + +Node1 + + +o2::monitoring::Monitoring +Factory + + + + + diff --git a/inherit_graph_7.dot b/inherit_graph_7.dot new file mode 100644 index 000000000..d8c6eb138 --- /dev/null +++ b/inherit_graph_7.dot @@ -0,0 +1,9 @@ +digraph "Graphical Class Hierarchy" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="o2::monitoring::MonLogger",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1MonLogger.html",tooltip="Simple Monitoring logging class. "]; +} diff --git a/inherit_graph_7.map b/inherit_graph_7.map new file mode 100644 index 000000000..8960382bd --- /dev/null +++ b/inherit_graph_7.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_7.md5 b/inherit_graph_7.md5 new file mode 100644 index 000000000..aa02736b5 --- /dev/null +++ b/inherit_graph_7.md5 @@ -0,0 +1 @@ +38b8f33b0d97f8d56a8a57ad9ec684ba \ No newline at end of file diff --git a/inherit_graph_7.svg b/inherit_graph_7.svg new file mode 100644 index 000000000..5ad3078b3 --- /dev/null +++ b/inherit_graph_7.svg @@ -0,0 +1,20 @@ + + + + + + +Graphical Class Hierarchy + +Node1 + + +o2::monitoring::MonLogger + + + + + diff --git a/inherit_graph_8.dot b/inherit_graph_8.dot new file mode 100644 index 000000000..c44a284d2 --- /dev/null +++ b/inherit_graph_8.dot @@ -0,0 +1,9 @@ +digraph "Graphical Class Hierarchy" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="o2::monitoring::ProcessDetails",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1ProcessDetails.html",tooltip="Collects process and machine related details such as PID, process name, hostname. ..."]; +} diff --git a/inherit_graph_8.map b/inherit_graph_8.map new file mode 100644 index 000000000..db2657243 --- /dev/null +++ b/inherit_graph_8.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_8.md5 b/inherit_graph_8.md5 new file mode 100644 index 000000000..5deefa14b --- /dev/null +++ b/inherit_graph_8.md5 @@ -0,0 +1 @@ +9f0385b3dfcfc58ae940af9e36e98813 \ No newline at end of file diff --git a/inherit_graph_8.svg b/inherit_graph_8.svg new file mode 100644 index 000000000..f539c1709 --- /dev/null +++ b/inherit_graph_8.svg @@ -0,0 +1,20 @@ + + + + + + +Graphical Class Hierarchy + +Node1 + + +o2::monitoring::ProcessDetails + + + + + diff --git a/inherit_graph_9.dot b/inherit_graph_9.dot new file mode 100644 index 000000000..18d7c800c --- /dev/null +++ b/inherit_graph_9.dot @@ -0,0 +1,9 @@ +digraph "Graphical Class Hierarchy" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + rankdir="LR"; + Node1 [label="o2::monitoring::ProcessMonitor",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1ProcessMonitor.html",tooltip="Monitors current process and/or other processes running at the same machien. "]; +} diff --git a/inherit_graph_9.map b/inherit_graph_9.map new file mode 100644 index 000000000..e1b42d16f --- /dev/null +++ b/inherit_graph_9.map @@ -0,0 +1,3 @@ + + + diff --git a/inherit_graph_9.md5 b/inherit_graph_9.md5 new file mode 100644 index 000000000..893412c58 --- /dev/null +++ b/inherit_graph_9.md5 @@ -0,0 +1 @@ +94a43bc327e277ba3858e1c28695d842 \ No newline at end of file diff --git a/inherit_graph_9.svg b/inherit_graph_9.svg new file mode 100644 index 000000000..0165e04f3 --- /dev/null +++ b/inherit_graph_9.svg @@ -0,0 +1,20 @@ + + + + + + +Graphical Class Hierarchy + +Node1 + + +o2::monitoring::ProcessMonitor + + + + + diff --git a/inherits.html b/inherits.html new file mode 100644 index 000000000..f397803e2 --- /dev/null +++ b/inherits.html @@ -0,0 +1,159 @@ + + + + + + +Monitoring: Class Hierarchy + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Class Hierarchy
+
+
+ + + + + + + + + + + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + + + diff --git a/jquery.js b/jquery.js new file mode 100644 index 000000000..d52a1c775 --- /dev/null +++ b/jquery.js @@ -0,0 +1,68 @@ +/* + * jQuery JavaScript Library v1.7.1 + * http://jquery.com/ + * + * Copyright 2011, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Mon Nov 21 21:11:03 2011 -0500 + */ +(function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b40){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b40&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b21?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv
a";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="
";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="
t
";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="
";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType;if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bCbA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}}); +/* + * Sizzle CSS Selector Engine + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1},lt:function(bS,bR,e){return bRe[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="

";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="
";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT0){for(bB=bA;bB=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},ac=a(av);ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div
","
"]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1>");try{for(var bw=0,bv=this.length;bw1&&bw0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]===""&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length;if(bA>0){if(bv!=="border"){for(;bx)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("
").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"":"")+"");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b})}})(window);/* + * jQuery UI 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI + */ +(function(a,d){a.ui=a.ui||{};if(a.ui.version){return}a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(e,f){return typeof e==="number"?this.each(function(){var g=this;setTimeout(function(){a(g).focus();if(f){f.call(g)}},e)}):this._focus.apply(this,arguments)},scrollParent:function(){var e;if((a.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){e=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(a.curCSS(this,"position",1))&&(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}else{e=this.parents().filter(function(){return(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!e.length?a(document):e},zIndex:function(h){if(h!==d){return this.css("zIndex",h)}if(this.length){var f=a(this[0]),e,g;while(f.length&&f[0]!==document){e=f.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){g=parseInt(f.css("zIndex"),10);if(!isNaN(g)&&g!==0){return g}}f=f.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width","Height"],function(g,e){var f=e==="Width"?["Left","Right"]:["Top","Bottom"],h=e.toLowerCase(),k={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};function j(m,l,i,n){a.each(f,function(){l-=parseFloat(a.curCSS(m,"padding"+this,true))||0;if(i){l-=parseFloat(a.curCSS(m,"border"+this+"Width",true))||0}if(n){l-=parseFloat(a.curCSS(m,"margin"+this,true))||0}});return l}a.fn["inner"+e]=function(i){if(i===d){return k["inner"+e].call(this)}return this.each(function(){a(this).css(h,j(this,i)+"px")})};a.fn["outer"+e]=function(i,l){if(typeof i!=="number"){return k["outer"+e].call(this,i)}return this.each(function(){a(this).css(h,j(this,i,true,l)+"px")})}});function c(g,e){var j=g.nodeName.toLowerCase();if("area"===j){var i=g.parentNode,h=i.name,f;if(!g.href||!h||i.nodeName.toLowerCase()!=="map"){return false}f=a("img[usemap=#"+h+"]")[0];return !!f&&b(f)}return(/input|select|textarea|button|object/.test(j)?!g.disabled:"a"==j?g.href||e:e)&&b(g)}function b(e){return !a(e).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.extend(a.expr[":"],{data:function(g,f,e){return !!a.data(g,e[3])},focusable:function(e){return c(e,!isNaN(a.attr(e,"tabindex")))},tabbable:function(g){var e=a.attr(g,"tabindex"),f=isNaN(e);return(f||e>=0)&&c(g,!f)}});a(function(){var e=document.body,f=e.appendChild(f=document.createElement("div"));f.offsetHeight;a.extend(f.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart="onselectstart" in f;e.removeChild(f).style.display="none"});a.extend(a.ui,{plugin:{add:function(f,g,j){var h=a.ui[f].prototype;for(var e in j){h.plugins[e]=h.plugins[e]||[];h.plugins[e].push([g,j[e]])}},call:function(e,g,f){var j=e.plugins[g];if(!j||!e.element[0].parentNode){return}for(var h=0;h0){return true}h[e]=1;g=(h[e]>0);h[e]=0;return g},isOverAxis:function(f,e,g){return(f>e)&&(f<(e+g))},isOver:function(j,f,i,h,e,g){return a.ui.isOverAxis(j,i,e)&&a.ui.isOverAxis(f,h,g)}})})(jQuery);/* + * jQuery UI Widget 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Widget + */ +(function(b,d){if(b.cleanData){var c=b.cleanData;b.cleanData=function(f){for(var g=0,h;(h=f[g])!=null;g++){try{b(h).triggerHandler("remove")}catch(j){}}c(f)}}else{var a=b.fn.remove;b.fn.remove=function(e,f){return this.each(function(){if(!f){if(!e||b.filter(e,[this]).length){b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(g){}})}}return a.call(b(this),e,f)})}}b.widget=function(f,h,e){var g=f.split(".")[0],j;f=f.split(".")[1];j=g+"-"+f;if(!e){e=h;h=b.Widget}b.expr[":"][j]=function(k){return !!b.data(k,f)};b[g]=b[g]||{};b[g][f]=function(k,l){if(arguments.length){this._createWidget(k,l)}};var i=new h();i.options=b.extend(true,{},i.options);b[g][f].prototype=b.extend(true,i,{namespace:g,widgetName:f,widgetEventPrefix:b[g][f].prototype.widgetEventPrefix||f,widgetBaseClass:j},e);b.widget.bridge(f,b[g][f])};b.widget.bridge=function(f,e){b.fn[f]=function(i){var g=typeof i==="string",h=Array.prototype.slice.call(arguments,1),j=this;i=!g&&h.length?b.extend.apply(null,[true,i].concat(h)):i;if(g&&i.charAt(0)==="_"){return j}if(g){this.each(function(){var k=b.data(this,f),l=k&&b.isFunction(k[i])?k[i].apply(k,h):k;if(l!==k&&l!==d){j=l;return false}})}else{this.each(function(){var k=b.data(this,f);if(k){k.option(i||{})._init()}else{b.data(this,f,new e(i,this))}})}return j}};b.Widget=function(e,f){if(arguments.length){this._createWidget(e,f)}};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(f,g){b.data(g,this.widgetName,this);this.element=b(g);this.options=b.extend(true,{},this.options,this._getCreateOptions(),f);var e=this;this.element.bind("remove."+this.widgetName,function(){e.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(f,g){var e=f;if(arguments.length===0){return b.extend({},this.options)}if(typeof f==="string"){if(g===d){return this.options[f]}e={};e[f]=g}this._setOptions(e);return this},_setOptions:function(f){var e=this;b.each(f,function(g,h){e._setOption(g,h)});return this},_setOption:function(e,f){this.options[e]=f;if(e==="disabled"){this.widget()[f?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",f)}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(e,f,g){var j,i,h=this.options[e];g=g||{};f=b.Event(f);f.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();f.target=this.element[0];i=f.originalEvent;if(i){for(j in i){if(!(j in f)){f[j]=i[j]}}}this.element.trigger(f,g);return !(b.isFunction(h)&&h.call(this.element[0],f,g)===false||f.isDefaultPrevented())}}})(jQuery);/* + * jQuery UI Mouse 1.8.18 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Mouse + * + * Depends: + * jquery.ui.widget.js + */ +(function(b,c){var a=false;b(document).mouseup(function(d){a=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName,function(e){return d._mouseDown(e)}).bind("click."+this.widgetName,function(e){if(true===b.data(e.target,d.widgetName+".preventClickEvent")){b.removeData(e.target,d.widgetName+".preventClickEvent");e.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(f){if(a){return}(this._mouseStarted&&this._mouseUp(f));this._mouseDownEvent=f;var e=this,g=(f.which==1),d=(typeof this.options.cancel=="string"&&f.target.nodeName?b(f.target).closest(this.options.cancel).length:false);if(!g||d||!this._mouseCapture(f)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(f)&&this._mouseDelayMet(f)){this._mouseStarted=(this._mouseStart(f)!==false);if(!this._mouseStarted){f.preventDefault();return true}}if(true===b.data(f.target,this.widgetName+".preventClickEvent")){b.removeData(f.target,this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(h){return e._mouseMove(h)};this._mouseUpDelegate=function(h){return e._mouseUp(h)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);f.preventDefault();a=true;return true},_mouseMove:function(d){if(b.browser.msie&&!(document.documentMode>=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted},_mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target==this._mouseDownEvent.target){b.data(d.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)},_mouseDelayMet:function(d){return this.mouseDelayMet},_mouseStart:function(d){},_mouseDrag:function(d){},_mouseStop:function(d){},_mouseCapture:function(d){return true}})})(jQuery);(function(c,d){c.widget("ui.resizable",c.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000},_create:function(){var f=this,k=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(k.aspectRatio),aspectRatio:k.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:k.helper||k.ghost||k.animate?k.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap(c('
').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=k.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var l=this.handles.split(",");this.handles={};for(var g=0;g
');if(/sw|se|ne|nw/.test(j)){h.css({zIndex:++k.zIndex})}if("se"==j){h.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[j]=".ui-resizable-"+j;this.element.append(h)}}this._renderAxis=function(q){q=q||this.element;for(var n in this.handles){if(this.handles[n].constructor==String){this.handles[n]=c(this.handles[n],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=c(this.handles[n],this.element),p=0;p=/sw|ne|nw|se|n|s/.test(n)?o.outerHeight():o.outerWidth();var m=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");q.css(m,p);this._proportionallyResize()}if(!c(this.handles[n]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!f.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}f.axis=i&&i[1]?i[1]:"se"}});if(k.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){if(k.disabled){return}c(this).removeClass("ui-resizable-autohide");f._handles.show()},function(){if(k.disabled){return}if(!f.resizing){c(this).addClass("ui-resizable-autohide");f._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var e=function(g){c(g).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){e(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css("position"),width:f.outerWidth(),height:f.outerHeight(),top:f.css("top"),left:f.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);e(this.originalElement);return this},_mouseCapture:function(f){var g=false;for(var e in this.handles){if(c(this.handles[e])[0]==f.target){g=true}}return !this.options.disabled&&g},_mouseStart:function(g){var j=this.options,f=this.element.position(),e=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(e.is(".ui-draggable")||(/absolute/).test(e.css("position"))){e.css({position:"absolute",top:f.top,left:f.left})}this._renderProxy();var k=b(this.helper.css("left")),h=b(this.helper.css("top"));if(j.containment){k+=c(j.containment).scrollLeft()||0;h+=c(j.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:k,top:h};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:k,top:h};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=(typeof j.aspectRatio=="number")?j.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var i=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",i=="auto"?this.axis+"-resize":i);e.addClass("ui-resizable-resizing");this._propagate("start",g);return true},_mouseDrag:function(e){var h=this.helper,g=this.options,m={},q=this,j=this.originalMousePosition,n=this.axis;var r=(e.pageX-j.left)||0,p=(e.pageY-j.top)||0;var i=this._change[n];if(!i){return false}var l=i.apply(this,[e,r,p]),k=c.browser.msie&&c.browser.version<7,f=this.sizeDiff;this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey){l=this._updateRatio(l,e)}l=this._respectSize(l,e);this._propagate("resize",e);h.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(l);this._trigger("resize",e,this.ui());return false},_mouseStop:function(h){this.resizing=false;var i=this.options,m=this;if(this._helper){var g=this._proportionallyResizeElements,e=g.length&&(/textarea/i).test(g[0].nodeName),f=e&&c.ui.hasScroll(g[0],"left")?0:m.sizeDiff.height,k=e?0:m.sizeDiff.width;var n={width:(m.helper.width()-k),height:(m.helper.height()-f)},j=(parseInt(m.element.css("left"),10)+(m.position.left-m.originalPosition.left))||null,l=(parseInt(m.element.css("top"),10)+(m.position.top-m.originalPosition.top))||null;if(!i.animate){this.element.css(c.extend(n,{top:l,left:j}))}m.helper.height(m.size.height);m.helper.width(m.size.width);if(this._helper&&!i.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",h);if(this._helper){this.helper.remove()}return false},_updateVirtualBoundaries:function(g){var j=this.options,i,h,f,k,e;e={minWidth:a(j.minWidth)?j.minWidth:0,maxWidth:a(j.maxWidth)?j.maxWidth:Infinity,minHeight:a(j.minHeight)?j.minHeight:0,maxHeight:a(j.maxHeight)?j.maxHeight:Infinity};if(this._aspectRatio||g){i=e.minHeight*this.aspectRatio;f=e.minWidth/this.aspectRatio;h=e.maxHeight*this.aspectRatio;k=e.maxWidth/this.aspectRatio;if(i>e.minWidth){e.minWidth=i}if(f>e.minHeight){e.minHeight=f}if(hl.width),s=a(l.height)&&i.minHeight&&(i.minHeight>l.height);if(h){l.width=i.minWidth}if(s){l.height=i.minHeight}if(t){l.width=i.maxWidth}if(m){l.height=i.maxHeight}var f=this.originalPosition.left+this.originalSize.width,p=this.position.top+this.size.height;var k=/sw|nw|w/.test(q),e=/nw|ne|n/.test(q);if(h&&k){l.left=f-i.minWidth}if(t&&k){l.left=f-i.maxWidth}if(s&&e){l.top=p-i.minHeight}if(m&&e){l.top=p-i.maxHeight}var n=!l.width&&!l.height;if(n&&!l.left&&l.top){l.top=null}else{if(n&&!l.top&&l.left){l.left=null}}return l},_proportionallyResize:function(){var k=this.options;if(!this._proportionallyResizeElements.length){return}var g=this.helper||this.element;for(var f=0;f');var e=c.browser.msie&&c.browser.version<7,g=(e?1:0),h=(e?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+h,height:this.element.outerHeight()+h,position:"absolute",left:this.elementOffset.left-g+"px",top:this.elementOffset.top-g+"px",zIndex:++i.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(g,f,e){return{width:this.originalSize.width+f}},w:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{left:i.left+f,width:g.width-f}},n:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{top:i.top+e,height:g.height-e}},s:function(g,f,e){return{height:this.originalSize.height+e}},se:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},sw:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,f,e]))},ne:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},nw:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,f,e]))}},_propagate:function(f,e){c.ui.plugin.call(this,f,[e,this.ui()]);(f!="resize"&&this._trigger(f,e,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});c.extend(c.ui.resizable,{version:"1.8.18"});c.ui.plugin.add("resizable","alsoResize",{start:function(f,g){var e=c(this).data("resizable"),i=e.options;var h=function(j){c(j).each(function(){var k=c(this);k.data("resizable-alsoresize",{width:parseInt(k.width(),10),height:parseInt(k.height(),10),left:parseInt(k.css("left"),10),top:parseInt(k.css("top"),10)})})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.parentNode){if(i.alsoResize.length){i.alsoResize=i.alsoResize[0];h(i.alsoResize)}else{c.each(i.alsoResize,function(j){h(j)})}}else{h(i.alsoResize)}},resize:function(g,i){var f=c(this).data("resizable"),j=f.options,h=f.originalSize,l=f.originalPosition;var k={height:(f.size.height-h.height)||0,width:(f.size.width-h.width)||0,top:(f.position.top-l.top)||0,left:(f.position.left-l.left)||0},e=function(m,n){c(m).each(function(){var q=c(this),r=c(this).data("resizable-alsoresize"),p={},o=n&&n.length?n:q.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];c.each(o,function(s,u){var t=(r[u]||0)+(k[u]||0);if(t&&t>=0){p[u]=t||null}});q.css(p)})};if(typeof(j.alsoResize)=="object"&&!j.alsoResize.nodeType){c.each(j.alsoResize,function(m,n){e(m,n)})}else{e(j.alsoResize)}},stop:function(e,f){c(this).removeData("resizable-alsoresize")}});c.ui.plugin.add("resizable","animate",{stop:function(i,n){var p=c(this).data("resizable"),j=p.options;var h=p._proportionallyResizeElements,e=h.length&&(/textarea/i).test(h[0].nodeName),f=e&&c.ui.hasScroll(h[0],"left")?0:p.sizeDiff.height,l=e?0:p.sizeDiff.width;var g={width:(p.size.width-l),height:(p.size.height-f)},k=(parseInt(p.element.css("left"),10)+(p.position.left-p.originalPosition.left))||null,m=(parseInt(p.element.css("top"),10)+(p.position.top-p.originalPosition.top))||null;p.element.animate(c.extend(g,m&&k?{top:m,left:k}:{}),{duration:j.animateDuration,easing:j.animateEasing,step:function(){var o={width:parseInt(p.element.css("width"),10),height:parseInt(p.element.css("height"),10),top:parseInt(p.element.css("top"),10),left:parseInt(p.element.css("left"),10)};if(h&&h.length){c(h[0]).css({width:o.width,height:o.height})}p._updateCache(o);p._propagate("resize",i)}})}});c.ui.plugin.add("resizable","containment",{start:function(f,r){var t=c(this).data("resizable"),j=t.options,l=t.element;var g=j.containment,k=(g instanceof c)?g.get(0):(/parent/.test(g))?l.parent().get(0):g;if(!k){return}t.containerElement=c(k);if(/document/.test(g)||g==document){t.containerOffset={left:0,top:0};t.containerPosition={left:0,top:0};t.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var n=c(k),i=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){i[p]=b(n.css("padding"+o))});t.containerOffset=n.offset();t.containerPosition=n.position();t.containerSize={height:(n.innerHeight()-i[3]),width:(n.innerWidth()-i[1])};var q=t.containerOffset,e=t.containerSize.height,m=t.containerSize.width,h=(c.ui.hasScroll(k,"left")?k.scrollWidth:m),s=(c.ui.hasScroll(k)?k.scrollHeight:e);t.parentData={element:k,left:q.left,top:q.top,width:h,height:s}}},resize:function(g,q){var t=c(this).data("resizable"),i=t.options,f=t.containerSize,p=t.containerOffset,m=t.size,n=t.position,r=t._aspectRatio||g.shiftKey,e={top:0,left:0},h=t.containerElement;if(h[0]!=document&&(/static/).test(h.css("position"))){e=p}if(n.left<(t._helper?p.left:0)){t.size.width=t.size.width+(t._helper?(t.position.left-p.left):(t.position.left-e.left));if(r){t.size.height=t.size.width/i.aspectRatio}t.position.left=i.helper?p.left:0}if(n.top<(t._helper?p.top:0)){t.size.height=t.size.height+(t._helper?(t.position.top-p.top):t.position.top);if(r){t.size.width=t.size.height*i.aspectRatio}t.position.top=t._helper?p.top:0}t.offset.left=t.parentData.left+t.position.left;t.offset.top=t.parentData.top+t.position.top;var l=Math.abs((t._helper?t.offset.left-e.left:(t.offset.left-e.left))+t.sizeDiff.width),s=Math.abs((t._helper?t.offset.top-e.top:(t.offset.top-p.top))+t.sizeDiff.height);var k=t.containerElement.get(0)==t.element.parent().get(0),j=/relative|absolute/.test(t.containerElement.css("position"));if(k&&j){l-=t.parentData.left}if(l+t.size.width>=t.parentData.width){t.size.width=t.parentData.width-l;if(r){t.size.height=t.size.width/t.aspectRatio}}if(s+t.size.height>=t.parentData.height){t.size.height=t.parentData.height-s;if(r){t.size.width=t.size.height*t.aspectRatio}}},stop:function(f,n){var q=c(this).data("resizable"),g=q.options,l=q.position,m=q.containerOffset,e=q.containerPosition,i=q.containerElement;var j=c(q.helper),r=j.offset(),p=j.outerWidth()-q.sizeDiff.width,k=j.outerHeight()-q.sizeDiff.height;if(q._helper&&!g.animate&&(/relative/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}if(q._helper&&!g.animate&&(/static/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}}});c.ui.plugin.add("resizable","ghost",{start:function(g,h){var e=c(this).data("resizable"),i=e.options,f=e.size;e.ghost=e.originalElement.clone();e.ghost.css({opacity:0.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:"");e.ghost.appendTo(e.helper)},resize:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost){e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})}},stop:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost&&e.helper){e.helper.get(0).removeChild(e.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(e,m){var p=c(this).data("resizable"),h=p.options,k=p.size,i=p.originalSize,j=p.originalPosition,n=p.axis,l=h._aspectRatio||e.shiftKey;h.grid=typeof h.grid=="number"?[h.grid,h.grid]:h.grid;var g=Math.round((k.width-i.width)/(h.grid[0]||1))*(h.grid[0]||1),f=Math.round((k.height-i.height)/(h.grid[1]||1))*(h.grid[1]||1);if(/^(se|s|e)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f}else{if(/^(ne)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f}else{if(/^(sw)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.left=j.left-g}else{p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f;p.position.left=j.left-g}}}}});var b=function(e){return parseInt(e,10)||0};var a=function(e){return !isNaN(parseInt(e,10))}})(jQuery);/* + * jQuery hashchange event - v1.3 - 7/21/2010 + * http://benalman.com/projects/jquery-hashchange-plugin/ + * + * Copyright (c) 2010 "Cowboy" Ben Alman + * Dual licensed under the MIT and GPL licenses. + * http://benalman.com/about/license/ + */ +(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$(' + + +
+
+
Instructions for DPL users
+
+
+

DPL stands for Data Processing Layer and it is part of ALICE O2 Framework.

+

Monitoring in DPL

+

A URL to the monitoring backend can be passed through monitoring-backend parameter. This will redirect all the metric to the selected backend. The list of supported backends is available in the Monitoring README file.

+

Then, from the DataProcessingDevice source Monitoring instance can be accessed via Monitoring service.

+

Monitoring backends at CERN

+

There are so-called Community Services available at CERN GPN network and O2 developers are welcome to use them in order to store and display metrics.

+

Time-series database

+

A time-series database, called InfluxDB, is used for metric storage.

+

Pass the following Monitoring URL via --monitoring-backend to your workflow in order to redirect metrics to Community Services instance:

1 influxdb-udp://aido2mon-gpn:8089

Dashboard

+

Time-series can be visualised in Grafana using a web browser.

+
    +
  1. Go to: https://alice-o2-mon.cern.ch:3000
  2. +
  3. Sign in with CERN SSO
  4. +
  5. Create a new dashboard, then and a new panel and use Query Editor to visualise previously stored metrics.
  6. +
+
+ + + + + diff --git a/namespacemembers.html b/namespacemembers.html new file mode 100644 index 000000000..51f2a8e54 --- /dev/null +++ b/namespacemembers.html @@ -0,0 +1,145 @@ + + + + + + +Monitoring: Namespace Members + + + + + + + + + + + + + + + +
+
+
+ + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+ + + + + + + + +
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all documented namespace members with links to the namespaces they belong to:
+
+
+ + + + diff --git a/namespacemembers_enum.html b/namespacemembers_enum.html new file mode 100644 index 000000000..464f78ecf --- /dev/null +++ b/namespacemembers_enum.html @@ -0,0 +1,142 @@ + + + + + + +Monitoring: Namespace Members + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
+ + + + diff --git a/namespacemembers_func.html b/namespacemembers_func.html new file mode 100644 index 000000000..b0af692d4 --- /dev/null +++ b/namespacemembers_func.html @@ -0,0 +1,133 @@ + + + + + + +Monitoring: Namespace Members + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
+ + + + diff --git a/namespaceo2_1_1monitoring.html b/namespaceo2_1_1monitoring.html new file mode 100644 index 000000000..b61c466c5 --- /dev/null +++ b/namespaceo2_1_1monitoring.html @@ -0,0 +1,245 @@ + + + + + + +Monitoring: o2::monitoring Namespace Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
o2::monitoring Namespace Reference
+
+
+ +

ALICE O2 Monitoring system. +More...

+ + + + + + + + +

+Namespaces

 backends
 Monitoring backends.
 
 transports
 Monitoring transports.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Classes

class  Backend
 Backend pure virtual interface. More...
 
class  DerivedMetrics
 Enables Calculation of derived metrics. More...
 
class  Metric
 Represents a metric including value, type of the value, name, timestamp and tags. More...
 
class  Monitoring
 Main class that collects metrics from user and dispatches them to selected monitoring backends. More...
 
class  MonitoringException
 Internal monitoring exception. More...
 
class  MonitoringFactory
 Monitoring and monitoring backends factory. More...
 
class  MonLogger
 Simple Monitoring logging class. More...
 
class  ProcessDetails
 Collects process and machine related details such as PID, process name, hostname. More...
 
class  ProcessMonitor
 Monitors current process and/or other processes running at the same machien. More...
 
class  VariantVisitorAdd
 Adds boost variants. More...
 
class  VariantVisitorRate
 Subtracts boost variants in order to calculate rate. More...
 
+ + + + + + + + + + + + + +

+Enumerations

enum  DerivedMetricMode { RATE, +INCREMENT, +NONE + }
 Available derived metric modes.
 
enum  Verbosity : short { Prod, +Info, +Debug + }
 Metric and Backedn verbosity.
 
enum  MetricType { INT = 0, +STRING = 1, +DOUBLE = 2, +UINT64_T = 3 + }
 Metric types.
 
enum  Severity { Error = 31, +Warn = 33, +Info = 49 + }
 List of possible log severities.
 
+ + + + + + + + + + + +

+Functions

+std::unique_ptr< BackendgetStdOut (http::url uri)
 
std::unique_ptr< BackendgetInfluxDbv2 (http::url uri)
 
+std::unique_ptr< BackendgetInfluxDb (http::url uri)
 
+std::unique_ptr< BackendgetApMon (http::url)
 
+std::unique_ptr< BackendgetNoop (http::url)
 
+

Detailed Description

+

ALICE O2 Monitoring system.

+

Function Documentation

+ +
+
+ + + + + + + + +
std::unique_ptr<Backend> o2::monitoring::getInfluxDbv2 (http::url uri)
+
+

Extracts token from header add sets it as addition HTTP header http://localhost:9999/?org=YOUR_ORG&bucket=YOUR_BUCKET&token=AUTH_TOKEN -> http://localhost:9999/api/v2/write?org=YOUR_ORG&bucket=YOUR_BUCKET –header "Authorization: Token YOURAUTHTOKEN"

+ +
+
+
+
+ + + + diff --git a/namespaceo2_1_1monitoring.js b/namespaceo2_1_1monitoring.js new file mode 100644 index 000000000..10defb599 --- /dev/null +++ b/namespaceo2_1_1monitoring.js @@ -0,0 +1,16 @@ +var namespaceo2_1_1monitoring = +[ + [ "backends", "namespaceo2_1_1monitoring_1_1backends.html", "namespaceo2_1_1monitoring_1_1backends" ], + [ "transports", "namespaceo2_1_1monitoring_1_1transports.html", "namespaceo2_1_1monitoring_1_1transports" ], + [ "Backend", "classo2_1_1monitoring_1_1Backend.html", "classo2_1_1monitoring_1_1Backend" ], + [ "DerivedMetrics", "classo2_1_1monitoring_1_1DerivedMetrics.html", "classo2_1_1monitoring_1_1DerivedMetrics" ], + [ "Metric", "classo2_1_1monitoring_1_1Metric.html", "classo2_1_1monitoring_1_1Metric" ], + [ "Monitoring", "classo2_1_1monitoring_1_1Monitoring.html", "classo2_1_1monitoring_1_1Monitoring" ], + [ "MonitoringException", "classo2_1_1monitoring_1_1MonitoringException.html", "classo2_1_1monitoring_1_1MonitoringException" ], + [ "MonitoringFactory", "classo2_1_1monitoring_1_1MonitoringFactory.html", "classo2_1_1monitoring_1_1MonitoringFactory" ], + [ "MonLogger", "classo2_1_1monitoring_1_1MonLogger.html", "classo2_1_1monitoring_1_1MonLogger" ], + [ "ProcessDetails", "classo2_1_1monitoring_1_1ProcessDetails.html", "classo2_1_1monitoring_1_1ProcessDetails" ], + [ "ProcessMonitor", "classo2_1_1monitoring_1_1ProcessMonitor.html", "classo2_1_1monitoring_1_1ProcessMonitor" ], + [ "VariantVisitorAdd", "classo2_1_1monitoring_1_1VariantVisitorAdd.html", "classo2_1_1monitoring_1_1VariantVisitorAdd" ], + [ "VariantVisitorRate", "classo2_1_1monitoring_1_1VariantVisitorRate.html", "classo2_1_1monitoring_1_1VariantVisitorRate" ] +]; \ No newline at end of file diff --git a/namespaceo2_1_1monitoring_1_1backends.html b/namespaceo2_1_1monitoring_1_1backends.html new file mode 100644 index 000000000..ec28afed9 --- /dev/null +++ b/namespaceo2_1_1monitoring_1_1backends.html @@ -0,0 +1,159 @@ + + + + + + +Monitoring: o2::monitoring::backends Namespace Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
o2::monitoring::backends Namespace Reference
+
+
+ +

Monitoring backends. +More...

+ + + + + + + + + + + + + + + + +

+Classes

class  ApMonBackend
 Backend that uses AppMon (MonALISA) More...
 
class  InfluxDB
 Backend that sends metrics to InfluxDB time-series databse. More...
 
class  Noop
 No-op backend. More...
 
struct  overloaded
 
class  StdOut
 Prints metrics to standard output via std::cout. More...
 
+ + + + +

+Functions

+template<class... Ts>
 overloaded (Ts...) -> overloaded< Ts... >
 
+

Detailed Description

+

Monitoring backends.

+
+
+ + + + diff --git a/namespaceo2_1_1monitoring_1_1backends.js b/namespaceo2_1_1monitoring_1_1backends.js new file mode 100644 index 000000000..5ce0e8d1c --- /dev/null +++ b/namespaceo2_1_1monitoring_1_1backends.js @@ -0,0 +1,8 @@ +var namespaceo2_1_1monitoring_1_1backends = +[ + [ "ApMonBackend", "classo2_1_1monitoring_1_1backends_1_1ApMonBackend.html", "classo2_1_1monitoring_1_1backends_1_1ApMonBackend" ], + [ "InfluxDB", "classo2_1_1monitoring_1_1backends_1_1InfluxDB.html", "classo2_1_1monitoring_1_1backends_1_1InfluxDB" ], + [ "Noop", "classo2_1_1monitoring_1_1backends_1_1Noop.html", "classo2_1_1monitoring_1_1backends_1_1Noop" ], + [ "overloaded", "structo2_1_1monitoring_1_1backends_1_1overloaded.html", null ], + [ "StdOut", "classo2_1_1monitoring_1_1backends_1_1StdOut.html", "classo2_1_1monitoring_1_1backends_1_1StdOut" ] +]; \ No newline at end of file diff --git a/namespaceo2_1_1monitoring_1_1transports.html b/namespaceo2_1_1monitoring_1_1transports.html new file mode 100644 index 000000000..7fd2b61b1 --- /dev/null +++ b/namespaceo2_1_1monitoring_1_1transports.html @@ -0,0 +1,158 @@ + + + + + + +Monitoring: o2::monitoring::transports Namespace Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
o2::monitoring::transports Namespace Reference
+
+
+ +

Monitoring transports. +More...

+ + + + + + + + + + + + + + + + + + + + + + + +

+Classes

class  HTTP
 HTTP POST transport. More...
 
class  Kafka
 Transport that sends string formatted metrics via Kafka. More...
 
class  StdOut
 Transport that sends string formatted metrics via StdOut. More...
 
class  TCP
 Transport that sends string formatted metrics via TCP. More...
 
class  TransportInterface
 Transport interface for backends. More...
 
class  UDP
 Transport that sends string formatted metrics via UDP. More...
 
class  Unix
 Transport that sends string formatted metrics via Unix datagram socket. More...
 
+

Detailed Description

+

Monitoring transports.

+
+
+ + + + diff --git a/namespaceo2_1_1monitoring_1_1transports.js b/namespaceo2_1_1monitoring_1_1transports.js new file mode 100644 index 000000000..2ac6d5ca3 --- /dev/null +++ b/namespaceo2_1_1monitoring_1_1transports.js @@ -0,0 +1,10 @@ +var namespaceo2_1_1monitoring_1_1transports = +[ + [ "HTTP", "classo2_1_1monitoring_1_1transports_1_1HTTP.html", "classo2_1_1monitoring_1_1transports_1_1HTTP" ], + [ "Kafka", "classo2_1_1monitoring_1_1transports_1_1Kafka.html", "classo2_1_1monitoring_1_1transports_1_1Kafka" ], + [ "StdOut", "classo2_1_1monitoring_1_1transports_1_1StdOut.html", "classo2_1_1monitoring_1_1transports_1_1StdOut" ], + [ "TCP", "classo2_1_1monitoring_1_1transports_1_1TCP.html", "classo2_1_1monitoring_1_1transports_1_1TCP" ], + [ "TransportInterface", "classo2_1_1monitoring_1_1transports_1_1TransportInterface.html", "classo2_1_1monitoring_1_1transports_1_1TransportInterface" ], + [ "UDP", "classo2_1_1monitoring_1_1transports_1_1UDP.html", "classo2_1_1monitoring_1_1transports_1_1UDP" ], + [ "Unix", "classo2_1_1monitoring_1_1transports_1_1Unix.html", "classo2_1_1monitoring_1_1transports_1_1Unix" ] +]; \ No newline at end of file diff --git a/namespaces.html b/namespaces.html new file mode 100644 index 000000000..dedd3386b --- /dev/null +++ b/namespaces.html @@ -0,0 +1,133 @@ + + + + + + +Monitoring: Namespace List + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Namespace List
+
+
+
Here is a list of all documented namespaces with brief descriptions:
+
[detail level 123]
+ + + + +
 No2
 NmonitoringALICE O2 Monitoring system
 NbackendsMonitoring backends
 NtransportsMonitoring transports
+
+
+
+ + + + diff --git a/namespaces.js b/namespaces.js new file mode 100644 index 000000000..c3136a0fd --- /dev/null +++ b/namespaces.js @@ -0,0 +1,6 @@ +var namespaces = +[ + [ "o2", null, [ + [ "monitoring", "namespaceo2_1_1monitoring.html", "namespaceo2_1_1monitoring" ] + ] ] +]; \ No newline at end of file diff --git a/nav_f.png b/nav_f.png new file mode 100644 index 000000000..72a58a529 Binary files /dev/null and b/nav_f.png differ diff --git a/nav_g.png b/nav_g.png new file mode 100644 index 000000000..2093a237a Binary files /dev/null and b/nav_g.png differ diff --git a/nav_h.png b/nav_h.png new file mode 100644 index 000000000..33389b101 Binary files /dev/null and b/nav_h.png differ diff --git a/navtree.css b/navtree.css new file mode 100644 index 000000000..1a868b3fc --- /dev/null +++ b/navtree.css @@ -0,0 +1,143 @@ +#nav-tree .children_ul { + margin:0; + padding:4px; +} + +#nav-tree ul { + list-style:none outside none; + margin:0px; + padding:0px; +} + +#nav-tree li { + white-space:nowrap; + margin:0px; + padding:0px; +} + +#nav-tree .plus { + margin:0px; +} + +#nav-tree .selected { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} + +#nav-tree img { + margin:0px; + padding:0px; + border:0px; + vertical-align: middle; +} + +#nav-tree a { + text-decoration:none; + padding:0px; + margin:0px; + outline:none; +} + +#nav-tree .label { + margin:0px; + padding:0px; + font: 12px 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +} + +#nav-tree .label a { + padding:2px; +} + +#nav-tree .selected a { + text-decoration:none; + color:#fff; +} + +#nav-tree .children_ul { + margin:0px; + padding:0px; +} + +#nav-tree .item { + margin:0px; + padding:0px; +} + +#nav-tree { + padding: 0px 0px; + background-color: #FAFAFF; + font-size:14px; + overflow:auto; +} + +#doc-content { + overflow:auto; + display:block; + padding:0px; + margin:0px; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#side-nav { + padding:0 6px 0 0; + margin: 0px; + display:block; + position: absolute; + left: 0px; + width: 250px; +} + +.ui-resizable .ui-resizable-handle { + display:block; +} + +.ui-resizable-e { + background:url("splitbar.png") repeat scroll right center transparent; + cursor:e-resize; + height:100%; + right:0; + top:0; + width:6px; +} + +.ui-resizable-handle { + display:none; + font-size:0.1px; + position:absolute; + z-index:1; +} + +#nav-tree-contents { + margin: 6px 0px 0px 0px; +} + +#nav-tree { + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#nav-sync { + position:absolute; + top:5px; + right:24px; + z-index:0; +} + +#nav-sync img { + opacity:0.3; +} + +#nav-sync img:hover { + opacity:0.9; +} + +@media print +{ + #nav-tree { display: none; } + div.ui-resizable-handle { display: none; position: relative; } +} + diff --git a/navtree.js b/navtree.js new file mode 100644 index 000000000..9df45a7d8 --- /dev/null +++ b/navtree.js @@ -0,0 +1,523 @@ +var navTreeSubIndices = new Array(); + +function getData(varName) +{ + var i = varName.lastIndexOf('/'); + var n = i>=0 ? varName.substring(i+1) : varName; + return eval(n.replace(/\-/g,'_')); +} + +function stripPath(uri) +{ + return uri.substring(uri.lastIndexOf('/')+1); +} + +function stripPath2(uri) +{ + var i = uri.lastIndexOf('/'); + var s = uri.substring(i+1); + var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/); + return m ? uri.substring(i-6) : s; +} + +function hashValue() +{ + return $(location).attr('hash').substring(1).replace(/[^\w\-]/g,''); +} + +function hashUrl() +{ + return '#'+hashValue(); +} + +function pathName() +{ + return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;\(\)]/g, ''); +} + +function localStorageSupported() +{ + try { + return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem; + } + catch(e) { + return false; + } +} + + +function storeLink(link) +{ + if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) { + window.localStorage.setItem('navpath',link); + } +} + +function deleteLink() +{ + if (localStorageSupported()) { + window.localStorage.setItem('navpath',''); + } +} + +function cachedLink() +{ + if (localStorageSupported()) { + return window.localStorage.getItem('navpath'); + } else { + return ''; + } +} + +function getScript(scriptName,func,show) +{ + var head = document.getElementsByTagName("head")[0]; + var script = document.createElement('script'); + script.id = scriptName; + script.type = 'text/javascript'; + script.onload = func; + script.src = scriptName+'.js'; + if ($.browser.msie && $.browser.version<=8) { + // script.onload does not work with older versions of IE + script.onreadystatechange = function() { + if (script.readyState=='complete' || script.readyState=='loaded') { + func(); if (show) showRoot(); + } + } + } + head.appendChild(script); +} + +function createIndent(o,domNode,node,level) +{ + var level=-1; + var n = node; + while (n.parentNode) { level++; n=n.parentNode; } + if (node.childrenData) { + var imgNode = document.createElement("img"); + imgNode.style.paddingLeft=(16*level).toString()+'px'; + imgNode.width = 16; + imgNode.height = 22; + imgNode.border = 0; + node.plus_img = imgNode; + node.expandToggle = document.createElement("a"); + node.expandToggle.href = "javascript:void(0)"; + node.expandToggle.onclick = function() { + if (node.expanded) { + $(node.getChildrenUL()).slideUp("fast"); + node.plus_img.src = node.relpath+"arrowright.png"; + node.expanded = false; + } else { + expandNode(o, node, false, false); + } + } + node.expandToggle.appendChild(imgNode); + domNode.appendChild(node.expandToggle); + imgNode.src = node.relpath+"arrowright.png"; + } else { + var span = document.createElement("span"); + span.style.display = 'inline-block'; + span.style.width = 16*(level+1)+'px'; + span.style.height = '22px'; + span.innerHTML = ' '; + domNode.appendChild(span); + } +} + +var animationInProgress = false; + +function gotoAnchor(anchor,aname,updateLocation) +{ + var pos, docContent = $('#doc-content'); + var ancParent = $(anchor.parent()); + if (ancParent.hasClass('memItemLeft') || + ancParent.hasClass('fieldname') || + ancParent.hasClass('fieldtype') || + ancParent.is(':header')) + { + pos = ancParent.position().top; + } else if (anchor.position()) { + pos = anchor.position().top; + } + if (pos) { + var dist = Math.abs(Math.min( + pos-docContent.offset().top, + docContent[0].scrollHeight- + docContent.height()-docContent.scrollTop())); + animationInProgress=true; + docContent.animate({ + scrollTop: pos + docContent.scrollTop() - docContent.offset().top + },Math.max(50,Math.min(500,dist)),function(){ + if (updateLocation) window.location.href=aname; + animationInProgress=false; + }); + } +} + +function newNode(o, po, text, link, childrenData, lastNode) +{ + var node = new Object(); + node.children = Array(); + node.childrenData = childrenData; + node.depth = po.depth + 1; + node.relpath = po.relpath; + node.isLast = lastNode; + + node.li = document.createElement("li"); + po.getChildrenUL().appendChild(node.li); + node.parentNode = po; + + node.itemDiv = document.createElement("div"); + node.itemDiv.className = "item"; + + node.labelSpan = document.createElement("span"); + node.labelSpan.className = "label"; + + createIndent(o,node.itemDiv,node,0); + node.itemDiv.appendChild(node.labelSpan); + node.li.appendChild(node.itemDiv); + + var a = document.createElement("a"); + node.labelSpan.appendChild(a); + node.label = document.createTextNode(text); + node.expanded = false; + a.appendChild(node.label); + if (link) { + var url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + link = url; + } else { + url = node.relpath+link; + } + a.className = stripPath(link.replace('#',':')); + if (link.indexOf('#')!=-1) { + var aname = '#'+link.split('#')[1]; + var srcPage = stripPath(pathName()); + var targetPage = stripPath(link.split('#')[0]); + a.href = srcPage!=targetPage ? url : "javascript:void(0)"; + a.onclick = function(){ + storeLink(link); + if (!$(a).parent().parent().hasClass('selected')) + { + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + $(a).parent().parent().addClass('selected'); + $(a).parent().parent().attr('id','selected'); + } + var anchor = $(aname); + gotoAnchor(anchor,aname,true); + }; + } else { + a.href = url; + a.onclick = function() { storeLink(link); } + } + } else { + if (childrenData != null) + { + a.className = "nolink"; + a.href = "javascript:void(0)"; + a.onclick = node.expandToggle.onclick; + } + } + + node.childrenUL = null; + node.getChildrenUL = function() { + if (!node.childrenUL) { + node.childrenUL = document.createElement("ul"); + node.childrenUL.className = "children_ul"; + node.childrenUL.style.display = "none"; + node.li.appendChild(node.childrenUL); + } + return node.childrenUL; + }; + + return node; +} + +function showRoot() +{ + var headerHeight = $("#top").height(); + var footerHeight = $("#nav-path").height(); + var windowHeight = $(window).height() - headerHeight - footerHeight; + (function (){ // retry until we can scroll to the selected item + try { + var navtree=$('#nav-tree'); + navtree.scrollTo('#selected',0,{offset:-windowHeight/2}); + } catch (err) { + setTimeout(arguments.callee, 0); + } + })(); +} + +function expandNode(o, node, imm, showRoot) +{ + if (node.childrenData && !node.expanded) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + expandNode(o, node, imm, showRoot); + }, showRoot); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } if (imm || ($.browser.msie && $.browser.version>8)) { + // somehow slideDown jumps to the start of tree for IE9 :-( + $(node.getChildrenUL()).show(); + } else { + $(node.getChildrenUL()).slideDown("fast"); + } + if (node.isLast) { + node.plus_img.src = node.relpath+"arrowdown.png"; + } else { + node.plus_img.src = node.relpath+"arrowdown.png"; + } + node.expanded = true; + } + } +} + +function glowEffect(n,duration) +{ + n.addClass('glow').delay(duration).queue(function(next){ + $(this).removeClass('glow');next(); + }); +} + +function highlightAnchor() +{ + var aname = hashUrl(); + var anchor = $(aname); + if (anchor.parent().attr('class')=='memItemLeft'){ + var rows = $('.memberdecls tr[class$="'+hashValue()+'"]'); + glowEffect(rows.children(),300); // member without details + } else if (anchor.parent().attr('class')=='fieldname'){ + glowEffect(anchor.parent().parent(),1000); // enum value + } else if (anchor.parent().attr('class')=='fieldtype'){ + glowEffect(anchor.parent().parent(),1000); // struct field + } else if (anchor.parent().is(":header")) { + glowEffect(anchor.parent(),1000); // section header + } else { + glowEffect(anchor.next(),1000); // normal member + } + gotoAnchor(anchor,aname,false); +} + +function selectAndHighlight(hash,n) +{ + var a; + if (hash) { + var link=stripPath(pathName())+':'+hash.substring(1); + a=$('.item a[class$="'+link+'"]'); + } + if (a && a.length) { + a.parent().parent().addClass('selected'); + a.parent().parent().attr('id','selected'); + highlightAnchor(); + } else if (n) { + $(n.itemDiv).addClass('selected'); + $(n.itemDiv).attr('id','selected'); + } + if ($('#nav-tree-contents .item:first').hasClass('selected')) { + $('#nav-sync').css('top','30px'); + } else { + $('#nav-sync').css('top','5px'); + } + showRoot(); +} + +function showNode(o, node, index, hash) +{ + if (node && node.childrenData) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + showNode(o,node,index,hash); + },true); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).css({'display':'block'}); + node.plus_img.src = node.relpath+"arrowdown.png"; + node.expanded = true; + var n = node.children[o.breadcrumbs[index]]; + if (index+11) hash = '#'+parts[1].replace(/[^\w\-]/g,''); + else hash=''; + } + if (hash.match(/^#l\d+$/)) { + var anchor=$('a[name='+hash.substring(1)+']'); + glowEffect(anchor.parent(),1000); // line number + hash=''; // strip line number anchors + } + var url=root+hash; + var i=-1; + while (NAVTREEINDEX[i+1]<=url) i++; + if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath) + } else { + getScript(relpath+'navtreeindex'+i,function(){ + navTreeSubIndices[i] = eval('NAVTREEINDEX'+i); + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath); + } + },true); + } +} + +function showSyncOff(n,relpath) +{ + n.html(''); +} + +function showSyncOn(n,relpath) +{ + n.html(''); +} + +function toggleSyncButton(relpath) +{ + var navSync = $('#nav-sync'); + if (navSync.hasClass('sync')) { + navSync.removeClass('sync'); + showSyncOff(navSync,relpath); + storeLink(stripPath2(pathName())+hashUrl()); + } else { + navSync.addClass('sync'); + showSyncOn(navSync,relpath); + deleteLink(); + } +} + +function initNavTree(toroot,relpath) +{ + var o = new Object(); + o.toroot = toroot; + o.node = new Object(); + o.node.li = document.getElementById("nav-tree-contents"); + o.node.childrenData = NAVTREE; + o.node.children = new Array(); + o.node.childrenUL = document.createElement("ul"); + o.node.getChildrenUL = function() { return o.node.childrenUL; }; + o.node.li.appendChild(o.node.childrenUL); + o.node.depth = 0; + o.node.relpath = relpath; + o.node.expanded = false; + o.node.isLast = true; + o.node.plus_img = document.createElement("img"); + o.node.plus_img.src = relpath+"arrowright.png"; + o.node.plus_img.width = 16; + o.node.plus_img.height = 22; + + if (localStorageSupported()) { + var navSync = $('#nav-sync'); + if (cachedLink()) { + showSyncOff(navSync,relpath); + navSync.removeClass('sync'); + } else { + showSyncOn(navSync,relpath); + } + navSync.click(function(){ toggleSyncButton(relpath); }); + } + + $(window).load(function(){ + navTo(o,toroot,hashUrl(),relpath); + showRoot(); + }); + + $(window).bind('hashchange', function(){ + if (window.location.hash && window.location.hash.length>1){ + var a; + if ($(location).attr('hash')){ + var clslink=stripPath(pathName())+':'+hashValue(); + a=$('.item a[class$="'+clslink.replace(/ + + + + + +Monitoring: Related Pages + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Related Pages
+
+
+
Here is a list of all related documentation pages:
+
+
+ + + + diff --git a/proto/envs.proto b/proto/envs.proto deleted file mode 100644 index 914c14cae..000000000 --- a/proto/envs.proto +++ /dev/null @@ -1,22 +0,0 @@ -syntax = "proto3"; -package aliceo2.envs; -option go_package = "protos;kafka"; - -message NewStateNotification { - EnvInfo envInfo = 1; - uint64 timestamp = 2; // ms since epoch -} - -message ActiveRunsList { - repeated EnvInfo activeRuns = 1; - uint64 timestamp = 2; // ms since epoch -} - -message EnvInfo { - string environmentId = 1; - uint32 runNumber = 2; - string runType = 3; - string state = 4; - repeated string detectors = 5; - uint64 enterStateTimestamp = 6; // ms since epoch. -} diff --git a/proto/o2control.proto b/proto/o2control.proto deleted file mode 100644 index b575da220..000000000 --- a/proto/o2control.proto +++ /dev/null @@ -1,525 +0,0 @@ -/* - * === This file is part of ALICE O² === - * - * Copyright 2018 CERN and copyright holders of ALICE O². - * Author: Teo Mrnjavac - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * In applying this license CERN does not waive the privileges and - * immunities granted to it by virtue of its status as an - * Intergovernmental Organization or submit itself to any jurisdiction. - */ - -syntax = "proto3"; - -package o2control; -option java_package = "ch.cern.alice.o2.control.rpcserver"; -option go_package = "github.com/AliceO2Group/Control/core/protos;pb"; - -//////////////// Common event messages /////////////// - -message Event_MesosHeartbeat { -} - -message Ev_EnvironmentEvent { - string environmentId = 1; - string state = 2; - uint32 currentRunNumber = 3; - string error = 4; - string message = 5; -} - -message Ev_TaskEvent { - string name = 1; - string taskid = 2; - string state = 3; - string status = 4; - string hostname = 5; - string className = 6; -} - -message Ev_RoleEvent { - string name = 1; - string status = 2; - string state = 3; - string rolePath = 4; -} - -////////////////////////////////////////////////////// - -service Control { - rpc TrackStatus (StatusRequest) returns (stream StatusReply) {} - - rpc GetFrameworkInfo (GetFrameworkInfoRequest) returns (GetFrameworkInfoReply) {} - rpc Teardown (TeardownRequest) returns (TeardownReply) {} - - rpc GetEnvironments (GetEnvironmentsRequest) returns (GetEnvironmentsReply) {} - rpc NewAutoEnvironment (NewAutoEnvironmentRequest) returns (NewAutoEnvironmentReply) {} - rpc NewEnvironment (NewEnvironmentRequest) returns (NewEnvironmentReply) {} - rpc GetEnvironment (GetEnvironmentRequest) returns (GetEnvironmentReply) {} - rpc ControlEnvironment (ControlEnvironmentRequest) returns (ControlEnvironmentReply) {} - rpc ModifyEnvironment (ModifyEnvironmentRequest) returns (ModifyEnvironmentReply) {} - rpc DestroyEnvironment (DestroyEnvironmentRequest) returns (DestroyEnvironmentReply) {} - rpc GetActiveDetectors (Empty) returns (GetActiveDetectorsReply) {} - -// rpc SetEnvironmentProperties (SetEnvironmentPropertiesRequest) returns (SetEnvironmentPropertiesReply) {} -// rpc GetEnvironmentProperties (GetEnvironmentPropertiesRequest) returns (GetEnvironmentPropertiesReply) {} - - rpc GetTasks (GetTasksRequest) returns (GetTasksReply) {} - rpc GetTask(GetTaskRequest) returns (GetTaskReply) {} - rpc CleanupTasks(CleanupTasksRequest) returns (CleanupTasksReply) {} - - rpc GetRoles (GetRolesRequest) returns (GetRolesReply) {} - - rpc GetWorkflowTemplates (GetWorkflowTemplatesRequest) returns (GetWorkflowTemplatesReply) {} - - rpc ListRepos(ListReposRequest) returns (ListReposReply) {} - rpc AddRepo(AddRepoRequest) returns (AddRepoReply) {} - rpc RemoveRepo(RemoveRepoRequest) returns (RemoveRepoReply) {} - rpc RefreshRepos(RefreshReposRequest) returns (Empty) {} - rpc SetDefaultRepo(SetDefaultRepoRequest) returns (Empty) {} - rpc SetGlobalDefaultRevision(SetGlobalDefaultRevisionRequest) returns (Empty) {} - rpc SetRepoDefaultRevision(SetRepoDefaultRevisionRequest) returns (SetRepoDefaultRevisionReply) {} - rpc Subscribe(SubscribeRequest) returns (stream Event); - - rpc GetIntegratedServices(Empty) returns (ListIntegratedServicesReply) {} -} - -//////////////////////////////////////// -// Global status -//////////////////////////////////////// -message StatusRequest {} -message StatusReply { - string state = 1; - repeated StatusUpdate statusUpdates = 2; -} -message StatusUpdate { - enum Level { - DEBUG = 0; - INFO = 1; - WARNING = 2; - ERROR = 3; - } - Level level = 1; - oneof Event { - Event_MesosHeartbeat mesosHeartbeat = 2; - //TODO add other events here and in events.proto - } -} - -message Event { - string timestamp = 1; - oneof Payload { - Ev_EnvironmentEvent environmentEvent = 2; - Ev_TaskEvent taskEvent = 3; - Ev_RoleEvent roleEvent = 4; - } -} - -message SubscribeRequest{ - string id = 1; -} -//////////////////////////////////////// -// Framework -//////////////////////////////////////// -message GetFrameworkInfoRequest {} -message Version { - int32 major = 1; - int32 minor = 2; - int32 patch = 3; - string build = 4; - string productName = 5; - string versionStr = 6; -} -message GetFrameworkInfoReply { - string frameworkId = 1; - int32 environmentsCount = 2; - int32 tasksCount = 3; - string state = 4; - int32 hostsCount = 5; - string instanceName = 6; - Version version = 7; - string configurationEndpoint = 8; - repeated string detectorsInInstance = 9; - repeated string activeDetectors = 10; - repeated string availableDetectors = 11; -} - -// Not implemented yet -message TeardownRequest { - string reason = 1; -} -message TeardownReply {} - -//////////////////////////////////////// -// Environment -//////////////////////////////////////// -message GetEnvironmentsRequest { - bool showAll = 1; - bool showTaskInfos = 2; -} -message GetEnvironmentsReply { - string frameworkId = 1; - repeated EnvironmentInfo environments = 2; -} -message EnvironmentInfo { - string id = 1; - int64 createdWhen = 2; // msec - string state = 3; - repeated ShortTaskInfo tasks = 4; - string rootRole = 5; - uint32 currentRunNumber = 6; - map defaults = 7; - map vars = 8; - map userVars = 9; - int32 numberOfFlps = 10; - repeated string includedDetectors = 11; - string description = 12; - int32 numberOfHosts = 13; - map integratedServicesData = 14; - int32 numberOfTasks = 15; - string currentTransition = 16; - int32 numberOfActiveTasks = 17; - int32 numberOfInactiveTasks = 18; -} - -message NewEnvironmentRequest { - string workflowTemplate = 1; - map vars = 2; - bool public = 3; -} -message NewEnvironmentReply { - EnvironmentInfo environment = 1; - bool public = 2; -} -message NewAutoEnvironmentRequest { - string workflowTemplate = 1; - map vars = 2; - string id = 3; -} -message NewAutoEnvironmentReply { - -} - -message GetEnvironmentRequest { - string id = 1; - bool showWorkflowTree = 2; -} -message GetEnvironmentReply { - EnvironmentInfo environment = 1; - RoleInfo workflow = 2; - bool public = 3; -} - -message ControlEnvironmentRequest { - string id = 1; - enum Optype { - NOOP = 0; - START_ACTIVITY = 1; - STOP_ACTIVITY = 2; - CONFIGURE = 3; - RESET = 4; - GO_ERROR = 5; - DEPLOY = 6; - } - Optype type = 2; -} -message ControlEnvironmentReply { - string id = 1; - string state = 2; - uint32 currentRunNumber = 3; - // All times are in milliseconds - int64 startOfTransition = 4; - int64 endOfTransition = 5; - int64 transitionDuration = 6; -} - -message ModifyEnvironmentRequest { - string id = 1; - repeated EnvironmentOperation operations = 2; - bool reconfigureAll = 3; -} -message EnvironmentOperation { - enum Optype { - NOOP = 0; - REMOVE_ROLE = 3; - ADD_ROLE = 4; - } - Optype type = 1; - string roleName = 2; -} -message ModifyEnvironmentReply { - repeated EnvironmentOperation failedOperations = 1; - string id = 2; - string state = 3; -} - -message DestroyEnvironmentRequest { - string id = 1; - bool keepTasks = 2; - bool allowInRunningState = 3; - bool force = 4; -} -message DestroyEnvironmentReply { - CleanupTasksReply cleanupTasksReply = 1; -} - -message GetActiveDetectorsReply { - repeated string detectors = 1; -} - -//////////////////////////////////////// -// Environment, GET/SET properties -//////////////////////////////////////// -message SetEnvironmentPropertiesRequest { - string id = 1; - // If properties == nil, the core sets nothing - // and reply ok - map properties = 2; -} -message SetEnvironmentPropertiesReply {} - -message GetEnvironmentPropertiesRequest { - string id = 1; - // If len(queries) == 0, we return an - // empty map. - // To retrieve all KVs, use query '*' - repeated string queries = 2; - bool excludeGlobals = 3; -} -message GetEnvironmentPropertiesReply { - map properties = 1; -} - - -//////////////////////////////////////// -// Tasks -//////////////////////////////////////// -message ShortTaskInfo { - string name = 1; - bool locked = 2; - string taskId = 3; - string status = 4; - string state = 5; - string className = 6; - TaskDeploymentInfo deploymentInfo = 7; - string pid = 8; - string sandboxStdout = 9; - bool claimable = 10; -} -message TaskDeploymentInfo { - string hostname = 1; - string agentId = 2; - string offerId = 3; - string executorId = 4; -} - -message GetTasksRequest {} -message GetTasksReply { - repeated ShortTaskInfo tasks = 1; -} -message GetTaskRequest { - string taskId = 1; -} -message GetTaskReply { - TaskInfo task = 1; -} - -message TaskClassInfo { - string name = 1; - string controlMode = 2; -} -message CommandInfo { - repeated string env = 1; - bool shell = 2; - string value = 3; - repeated string arguments = 4; - string user = 5; -} -message ChannelInfo { - string name = 1; - string type = 2; - string target = 3; -} -message TaskInfo { - ShortTaskInfo shortInfo = 1; - TaskClassInfo classInfo = 2; - repeated ChannelInfo inboundChannels = 3; - repeated ChannelInfo outboundChannels = 4; - CommandInfo commandInfo = 5; - string taskPath = 6; - string envId = 7; - map properties = 9; -} - -message CleanupTasksRequest { - repeated string taskIds = 1; -} -message CleanupTasksReply { - repeated ShortTaskInfo killedTasks = 1; - repeated ShortTaskInfo runningTasks = 2; -} - -//////////////////////////////////////// -// Roles -//////////////////////////////////////// -message GetRolesRequest { - string envId = 1; - string pathSpec = 2; -} - -message RoleInfo { - string name = 1; - string status = 2; - string state = 3; - string fullPath = 4; - repeated string taskIds = 5; - repeated RoleInfo roles = 6; - map defaults = 7; - map vars = 8; - map userVars = 9; - map consolidatedStack = 10; - string description = 11; -} - -message GetRolesReply { - repeated RoleInfo roles = 1; -} - -message GetWorkflowTemplatesRequest{ - string repoPattern = 1; - string revisionPattern = 2; - bool allBranches = 3; - bool allTags = 4; - bool allWorkflows = 5; -} - -message VarSpecMessage { - enum UiWidget { - editBox = 0; // plain string input line, can accept types number (like a spinBox) and string - slider = 1; // input widget exclusively for numbers, range allowedValues[0]-[1] - listBox = 2; // displays a list of items, can accept types number, string or list; if number/string ==> single selection, otherwise multiple selection allowed - dropDownBox = 3; - comboBox = 4; - radioButtonBox = 5; - checkBox = 6; - } - - enum Type { - string = 0; - number = 1; - bool = 2; - list = 3; - map = 4; - } - - string defaultValue = 1; - Type type = 2; - string label = 3; - string description = 4; - UiWidget widget = 5; - string panel = 6; // hint for the UI on where to put or group the given variable input - repeated string allowedValues = 7; // list of offered values from which to choose (only for some UiWidgets) - int32 index = 8; - string visibleIf = 9; // JS expression that evaluates to bool - string enabledIf = 10; // JS expression that evaluates to bool -} - -message WorkflowTemplateInfo { - string repo = 1; - string template = 2; - string revision = 3; - map varSpecMap = 4; - string description = 5; -} - -message GetWorkflowTemplatesReply{ - repeated WorkflowTemplateInfo workflowTemplates = 1; -} - -//////////////////////////////////////// -// Repos -//////////////////////////////////////// - -message ListReposRequest { - bool getRevisions = 1; -} - -message RepoInfo { - string name = 1; - bool default = 2; - string defaultRevision = 3; - repeated string revisions = 4; -} - -message ListReposReply { - repeated RepoInfo repos = 1; - string globalDefaultRevision = 2; -} - -message AddRepoRequest { - string name = 1; - string defaultRevision = 2; -} - -message AddRepoReply { - string newDefaultRevision = 1; - string info = 2; -} - -message RemoveRepoRequest { - int32 index = 1; -} - -message RemoveRepoReply { - string newDefaultRepo = 1; -} - -message RefreshReposRequest { - int32 index = 1; -} - -message SetDefaultRepoRequest { - int32 index = 1; -} - -message SetGlobalDefaultRevisionRequest { - string revision = 1; -} - -message SetRepoDefaultRevisionRequest { - int32 index = 1; - string revision = 2; -} - -message SetRepoDefaultRevisionReply { - string info = 1; -} - -message Empty { - -} - -message ListIntegratedServicesReply { - map services = 1; // keys are IDs (e.g. "ddsched"), the service name should be displayed to users instead -} - -message IntegratedServiceInfo { - string name = 1; // user-visible service name, e.g. "DD scheduler" - bool enabled = 2; - string endpoint = 3; - string connectionState = 4; // allowed values: READY, CONNECTING, TRANSIENT_FAILURE, IDLE, SHUTDOWN - string data = 5; // always a JSON payload with a map inside. -} \ No newline at end of file diff --git a/proto/odc.proto b/proto/odc.proto deleted file mode 100644 index 1b26d8483..000000000 --- a/proto/odc.proto +++ /dev/null @@ -1,226 +0,0 @@ -syntax = "proto3"; - -package odc; - -// The ODC service definition. -// For details also see https://github.com/FairRootGroup/ODC#command-mapping -service ODC { - // Creates a new DDS session or attaches to an existing DDS session. - rpc Initialize (InitializeRequest) returns (GeneralReply) {} - // Submits DDS agents (deploys a dynamic cluster) according to a specified computing resources. - // Can be called multiple times in order to submit more DDS agents (allocate more resources). - rpc Submit (SubmitRequest) returns (GeneralReply) {} - // Activates a given topology. - rpc Activate (ActivateRequest) returns (GeneralReply) {} - // Run request combines Initialize, Submit and Activate into a single request. - // Run request always creates a new DDS session. - rpc Run (RunRequest) returns (GeneralReply) {} - // Updates a topology (up or down scale number of tasks or any other topology change). - // It consists of 3 commands: Reset, Activate and Configure. - // Can be called multiple times. - rpc Update (UpdateRequest) returns (GeneralReply) {} - // Transitions devices into Ready state. - rpc Configure (ConfigureRequest) returns (StateReply) {} - // Changes devices configuration. - rpc SetProperties (SetPropertiesRequest) returns (GeneralReply) {} - // Get current aggregated state of devices. - rpc GetState (StateRequest) returns (StateReply) {} - // Transition devices into Running state. - rpc Start (StartRequest) returns (StateReply) {} - // Transitions devices into Ready state. - rpc Stop (StopRequest) returns (StateReply) {} - // Transitions devices into Idle state. - rpc Reset (ResetRequest) returns (StateReply) {} - // Shuts devices down via End transition. - rpc Terminate (TerminateRequest) returns (StateReply) {} - // Shutdown DDS session. - rpc Shutdown (ShutdownRequest) returns (GeneralReply) {} - // Status request. - rpc Status (StatusRequest) returns (StatusReply) {} -} - -// Request status -enum ReplyStatus { - UNKNOWN = 0; // Status is unknown - SUCCESS = 1; // Request performed successfully - ERROR = 2; // Failed to perform request -} - -// Session status as defined by DDS -enum SessionStatus { - UNKNOWN_ = 0; // Status is unknown - RUNNING = 1; // DDS session is running - STOPPED = 2; // DDS session is stopped -} - -// General error -message Error { - string msg = 1; // Detailed error message - int32 code = 2; // Error code. - // TODO: Make error codes specific for each concrete request and/or error type. - // TODO: Add link to a documented error codes. -} - -// General reply to requests -message GeneralReply { - string msg = 1; // Detailed reply message - ReplyStatus status = 2; // Request status code (UNKNOWN, SUCCESS, ERROR) - Error error = 3; // If status is ERROR than this field contains error description otherwise it's empty - int32 exectime = 4; // Request execution time in ms - string partitionid = 5; // Partition ID from ECS - string sessionid = 6; // DDS session ID - string state = 7; // If successful and applicable to a request then contains an aggregated FairMQ device state, otherwise UNDEFINED. - uint64 runnr = 8; // Run number from ECS (optional) - repeated string hosts = 9; // Where applicable, provides a list of used hosts (Submit/Run requests) -} - -// Device information -// Runtime task ID and path are the same as in DDS. -// To get task details use DDS Topology API. -message Device { - uint64 id = 1; // Runtime task ID (same as in DDS) - string state = 2; // FairMQ device state as string - string path = 3; // Runtime task path (same as in DDS) - bool ignored = 4; // Device was stopped and set to be ignored - string host = 5; // Host where the task runs -} - -// Device change/get state request -message StateRequest { - string partitionid = 1; // Partition ID from ECS - uint64 runnr = 4; // Run number from ECS - uint32 timeout = 5; // Request timeout in sec. If not set or 0 than default is used. - string path = 2; // Task path in the DDS topology. Can be a regular expression. - bool detailed = 3; // If true then a list of affected devices is populated in the reply. -} - -// Device change/get state reply -message StateReply { - GeneralReply reply = 1; // General reply. See GeneralReply message for details. - repeated Device devices = 2; // If detailed reply is requested then this field contains a list of affected devices otherwise it's empty. -} - -// Status of each partition -message PartitionStatus { - string partitionid = 1; // Partition ID from ECS - uint64 runnr = 5; // Run number from ECS - uint32 timeout = 6; // Request timeout in sec. If not set or 0 than default is used. - string sessionid = 2; // DDS session ID - SessionStatus status = 3; // DDS session status - string state = 4; // If successful and applicable to a request then contains an aggregated FairMQ device state, otherwise UNDEFINED. -} - -// ODC status reply -message StatusReply { - string msg = 1; // Detailed reply message - ReplyStatus status = 2; // Request status code (UNKNOWN, SUCCESS, ERROR) - Error error = 3; // If status is ERROR than this field contains error description otherwise it's empty - int32 exectime = 4; // Request execution time in ms - repeated PartitionStatus partitions = 5; // Status of each partition -} - -// Initialize request -message InitializeRequest { - string partitionid = 1; // Partition ID from ECS - uint64 runnr = 3; // Run number from ECS - uint32 timeout = 4; // Request timeout in sec. If not set or 0 than default is used. - string sessionid = 2; // DDS session ID. If session ID is provided that ODC connects to an existing DDS session. If session ID is an empty string that a new DDS session is created. -} - -// Submit request -message SubmitRequest { - string partitionid = 1; // Partition ID from ECS - uint64 runnr = 4; // Run number from ECS - uint32 timeout = 5; // Request timeout in sec. If not set or 0 than default is used. - string plugin = 2; // Name of the resource plugin registered in odc-server - string resources = 3; // Resource description -} - -// Activate request -message ActivateRequest { - string partitionid = 1; // Partition ID from ECS - uint64 runnr = 5; // Run number from ECS - uint32 timeout = 6; // Request timeout in sec. If not set or 0 than default is used. - // Either `topology`, `content` or `script` has to be set. If all or none is set then an error is returned. - string topology = 2; // Filepath to the XML DDS topology file - string content = 3; // Content of the XML DDS topology - string script = 4; // Shell commands to be executed by ODC in order to generate content of the XML DDS topology -} - -// Run request -message RunRequest { - string partitionid = 1; // Partition ID from ECS - uint64 runnr = 7; // Run number from ECS - uint32 timeout = 8; // Request timeout in sec. If not set or 0 than default is used. - // Either `topology`, `content` or `script` has to be set. If all or none is set then an error is returned. - string topology = 2; // Filepath to the XML DDS topology file - string content = 5; // Content of the XML DDS topology - string script = 6; // Shell commands to be executed by ODC in order to generate content of the XML DDS topology - string plugin = 3; // Name of the resource plugin registered in odc-server - string resources = 4; // Resource description - bool extractTopoResources = 9; // extract required resources from the topology file only (plugin & resources fields are ignored) -} - -// Update request -message UpdateRequest { - string partitionid = 1; // Partition ID from ECS - uint64 runnr = 5; // Run number from ECS - uint32 timeout = 6; // Request timeout in sec. If not set or 0 than default is used. - // Either `topology`, `content` or `script` has to be set. If all or none is set then an error is returned. - string topology = 2; // Filepath to the XML DDS topology file - string content = 3; // Content of the XML DDS topology - string script = 4; // Shell commands to be executed by ODC in order to generate content of the XML DDS topology -} - -// Shutdown request -message ShutdownRequest { - string partitionid = 1; // Partition ID from ECS - uint64 runnr = 2; // Run number from ECS - uint32 timeout = 3; // Request timeout in sec. If not set or 0 than default is used. -} - -// Key-Value property -message Property { - string key = 1; // Property key - string value = 2; // Property value -} - -// Set properties request -message SetPropertiesRequest { - string partitionid = 1; // Partition ID from ECS - uint64 runnr = 4; // Run number from ECS - uint32 timeout = 5; // Request timeout in sec. If not set or 0 than default is used. - string path = 2; // Task path in the DDS topology. Can be a regular expression. - repeated Property properties = 3; // List of properties to be set -} - -// Configure request -message ConfigureRequest { - StateRequest request = 1; // State change request. See StateRequest for details. -} - -// Start request -message StartRequest { - StateRequest request = 1; // State change request. See StateRequest for details. -} - -// Stop request -message StopRequest { - StateRequest request = 1; // State change request. See StateRequest for details. -} - -// Reset request -message ResetRequest { - StateRequest request = 1; // State change request. See StateRequest for details. -} - -// Terminate request -message TerminateRequest { - StateRequest request = 1; // State change request. See StateRequest for details. -} - -// Status request -message StatusRequest { - bool running = 1; // Select only running DDS sessions -} - diff --git a/resize.js b/resize.js new file mode 100644 index 000000000..2b86c36c6 --- /dev/null +++ b/resize.js @@ -0,0 +1,97 @@ +var cookie_namespace = 'doxygen'; +var sidenav,navtree,content,header; + +function readCookie(cookie) +{ + var myCookie = cookie_namespace+"_"+cookie+"="; + if (document.cookie) + { + var index = document.cookie.indexOf(myCookie); + if (index != -1) + { + var valStart = index + myCookie.length; + var valEnd = document.cookie.indexOf(";", valStart); + if (valEnd == -1) + { + valEnd = document.cookie.length; + } + var val = document.cookie.substring(valStart, valEnd); + return val; + } + } + return 0; +} + +function writeCookie(cookie, val, expiration) +{ + if (val==undefined) return; + if (expiration == null) + { + var date = new Date(); + date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week + expiration = date.toGMTString(); + } + document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; expires=" + expiration+"; path=/"; +} + +function resizeWidth() +{ + var windowWidth = $(window).width() + "px"; + var sidenavWidth = $(sidenav).outerWidth(); + content.css({marginLeft:parseInt(sidenavWidth)+"px"}); + writeCookie('width',sidenavWidth, null); +} + +function restoreWidth(navWidth) +{ + var windowWidth = $(window).width() + "px"; + content.css({marginLeft:parseInt(navWidth)+6+"px"}); + sidenav.css({width:navWidth + "px"}); +} + +function resizeHeight() +{ + var headerHeight = header.outerHeight(); + var footerHeight = footer.outerHeight(); + var windowHeight = $(window).height() - headerHeight - footerHeight; + content.css({height:windowHeight + "px"}); + navtree.css({height:windowHeight + "px"}); + sidenav.css({height:windowHeight + "px"}); +} + +function initResizable() +{ + header = $("#top"); + sidenav = $("#side-nav"); + content = $("#doc-content"); + navtree = $("#nav-tree"); + footer = $("#nav-path"); + $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } }); + $(window).resize(function() { resizeHeight(); }); + var width = readCookie('width'); + if (width) { restoreWidth(width); } else { resizeWidth(); } + resizeHeight(); + var url = location.href; + var i=url.indexOf("#"); + if (i>=0) window.location.hash=url.substr(i); + var _preventDefault = function(evt) { evt.preventDefault(); }; + $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); + $(document).bind('touchmove',function(e){ + var device = navigator.userAgent.toLowerCase(); + var ios = device.match(/(iphone|ipod|ipad)/); + if (ios) { + try { + var target = e.target; + while (target) { + if ($(target).css('-webkit-overflow-scrolling')=='touch') return; + target = target.parentNode; + } + e.preventDefault(); + } catch(err) { + e.preventDefault(); + } + } + }); +} + + diff --git a/search/all_0.html b/search/all_0.html new file mode 100644 index 000000000..d54e0bd8e --- /dev/null +++ b/search/all_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/all_0.js b/search/all_0.js new file mode 100644 index 000000000..f53adba65 --- /dev/null +++ b/search/all_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['1_2dbasic_2ecxx',['1-Basic.cxx',['../1-Basic_8cxx.html',1,'']]], + ['10_2dbuffering_2ecxx',['10-Buffering.cxx',['../10-Buffering_8cxx.html',1,'']]] +]; diff --git a/search/all_1.html b/search/all_1.html new file mode 100644 index 000000000..8cc6a1de9 --- /dev/null +++ b/search/all_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/all_1.js b/search/all_1.js new file mode 100644 index 000000000..754720ea0 --- /dev/null +++ b/search/all_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['2_2dtaggedmetrics_2ecxx',['2-TaggedMetrics.cxx',['../2-TaggedMetrics_8cxx.html',1,'']]] +]; diff --git a/search/all_10.html b/search/all_10.html new file mode 100644 index 000000000..c25484f20 --- /dev/null +++ b/search/all_10.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/all_10.js b/search/all_10.js new file mode 100644 index 000000000..2bcf1d673 --- /dev/null +++ b/search/all_10.js @@ -0,0 +1,30 @@ +var searchData= +[ + ['monitoring',['Monitoring',['../index.html',1,'']]], + ['main',['main',['../2-TaggedMetrics_8cxx.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'2-TaggedMetrics.cxx']]], + ['mdefaultvaluename',['mDefaultValueName',['../classo2_1_1monitoring_1_1Metric.html#a94a576a3682538822b4af019a23041f6',1,'o2::monitoring::Metric']]], + ['metric',['Metric',['../classo2_1_1monitoring_1_1Metric.html#a870254fea4ff3bfcaef4fbb7c186f782',1,'o2::monitoring::Metric::Metric(int value, const std::string &name, Verbosity verbosity=Metric::DefaultVerbosity)'],['../classo2_1_1monitoring_1_1Metric.html#aabd1bc0072d5ae13e14715e2608c376e',1,'o2::monitoring::Metric::Metric(std::string value, const std::string &name, Verbosity verbosity=Metric::DefaultVerbosity)'],['../classo2_1_1monitoring_1_1Metric.html#a51519c6056128605714b40dc9bf351d0',1,'o2::monitoring::Metric::Metric(double value, const std::string &name, Verbosity verbosity=Metric::DefaultVerbosity)'],['../classo2_1_1monitoring_1_1Metric.html#ac8fedad90cd7254b562b7a34bc9ebb00',1,'o2::monitoring::Metric::Metric(uint64_t value, const std::string &name, Verbosity verbosity=Metric::DefaultVerbosity)'],['../classo2_1_1monitoring_1_1Metric.html#ae069928c65057166a361b7c3dcd175d3',1,'o2::monitoring::Metric::Metric(const std::string &name, Verbosity verbosity=Metric::DefaultVerbosity, const std::chrono::time_point< std::chrono::system_clock > &timestamp=Metric::getCurrentTimestamp())']]], + ['metric',['Metric',['../classo2_1_1monitoring_1_1Metric.html',1,'o2::monitoring']]], + ['metric_2ecxx',['Metric.cxx',['../Metric_8cxx.html',1,'']]], + ['metric_2eh',['Metric.h',['../Metric_8h.html',1,'']]], + ['metrictype',['MetricType',['../namespaceo2_1_1monitoring.html#aec92be89e539614c82f3e7ecacfd2b41',1,'o2::monitoring']]], + ['mname',['mName',['../classo2_1_1monitoring_1_1Metric.html#a2f7c68b3bc3fae9639a7617d2b4217c9',1,'o2::monitoring::Metric']]], + ['monitoring',['Monitoring',['../classo2_1_1monitoring_1_1Monitoring.html#a1d03167696a62ea65760f05719528ba8',1,'o2::monitoring::Monitoring::Monitoring(const Monitoring &)=delete'],['../classo2_1_1monitoring_1_1Monitoring.html#af60d643d981a73feac969dcc394ac6ef',1,'o2::monitoring::Monitoring::Monitoring()']]], + ['monitoring',['Monitoring',['../classo2_1_1monitoring_1_1Monitoring.html',1,'o2::monitoring']]], + ['monitoring_2ecxx',['Monitoring.cxx',['../Monitoring_8cxx.html',1,'']]], + ['monitoring_2eh',['Monitoring.h',['../Monitoring_8h.html',1,'']]], + ['monitoringexception',['MonitoringException',['../classo2_1_1monitoring_1_1MonitoringException.html',1,'o2::monitoring']]], + ['monitoringexception_2ecxx',['MonitoringException.cxx',['../MonitoringException_8cxx.html',1,'']]], + ['monitoringexception_2eh',['MonitoringException.h',['../MonitoringException_8h.html',1,'']]], + ['monitoringfactory',['MonitoringFactory',['../classo2_1_1monitoring_1_1MonitoringFactory.html',1,'o2::monitoring']]], + ['monitoringfactory_2ecxx',['MonitoringFactory.cxx',['../MonitoringFactory_8cxx.html',1,'']]], + ['monitoringfactory_2eh',['MonitoringFactory.h',['../MonitoringFactory_8h.html',1,'']]], + ['monlogger',['MonLogger',['../classo2_1_1monitoring_1_1MonLogger.html',1,'o2::monitoring']]], + ['monlogger_2eh',['MonLogger.h',['../MonLogger_8h.html',1,'']]], + ['mregexpolicy',['mRegexPolicy',['../classo2_1_1monitoring_1_1Metric.html#a14e25c89f72ed3647e6365505efdde74',1,'o2::monitoring::Metric']]], + ['mstorage',['mStorage',['../classo2_1_1monitoring_1_1DerivedMetrics.html#ab45ed6358a28e8455824704e1919ef48',1,'o2::monitoring::DerivedMetrics']]], + ['mtags',['mTags',['../classo2_1_1monitoring_1_1Metric.html#ad0b2da7138e43df7e8a1abf3fc94e4aa',1,'o2::monitoring::Metric']]], + ['mtimestamp',['mTimestamp',['../classo2_1_1monitoring_1_1Metric.html#a9cca99dc167febd6977c8eb2600913cc',1,'o2::monitoring::Metric']]], + ['mvalues',['mValues',['../classo2_1_1monitoring_1_1Metric.html#a22a0420126bab818dc7951c5e1c47c65',1,'o2::monitoring::Metric']]], + ['mverbosity',['mVerbosity',['../classo2_1_1monitoring_1_1Metric.html#a33a7d10de02570105a0a9976a7886744',1,'o2::monitoring::Metric']]] +]; diff --git a/search/all_11.html b/search/all_11.html new file mode 100644 index 000000000..3615c2815 --- /dev/null +++ b/search/all_11.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/all_11.js b/search/all_11.js new file mode 100644 index 000000000..a58165e45 --- /dev/null +++ b/search/all_11.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['noop',['Noop',['../classo2_1_1monitoring_1_1backends_1_1Noop.html',1,'o2::monitoring::backends']]], + ['noop',['Noop',['../classo2_1_1monitoring_1_1backends_1_1Noop.html#aab063b0e0bdf16ee53a972ed7f5a3516',1,'o2::monitoring::backends::Noop']]], + ['noop_2eh',['Noop.h',['../Noop_8h.html',1,'']]] +]; diff --git a/search/all_12.html b/search/all_12.html new file mode 100644 index 000000000..abd082a5e --- /dev/null +++ b/search/all_12.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/all_12.js b/search/all_12.js new file mode 100644 index 000000000..495318682 --- /dev/null +++ b/search/all_12.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['backends',['backends',['../namespaceo2_1_1monitoring_1_1backends.html',1,'o2::monitoring']]], + ['derivedmetrics',['DerivedMetrics',['../classo2_1_1monitoring_1_1Metric.html#a69478638779e98ab46e31ae42219c0cc',1,'o2::monitoring::Metric']]], + ['monitoring',['monitoring',['../namespaceo2_1_1monitoring.html',1,'o2']]], + ['operator_28_29',['operator()',['../classo2_1_1monitoring_1_1VariantVisitorAdd.html#a5ec9991b6db0e9c3763a33284dc132ad',1,'o2::monitoring::VariantVisitorAdd::operator()(const T &a, const T &b) const '],['../classo2_1_1monitoring_1_1VariantVisitorAdd.html#aaee2df6b3a3cd51d634fdc40cdae70c2',1,'o2::monitoring::VariantVisitorAdd::operator()(const T &, const U &) const '],['../classo2_1_1monitoring_1_1VariantVisitorRate.html#a761ef6eb471299a8c772bce9e7ab44bb',1,'o2::monitoring::VariantVisitorRate::operator()(const T &a, const T &b) const '],['../classo2_1_1monitoring_1_1VariantVisitorRate.html#a9a1258d6ceb8a8b1a5530b2ea534ed8b',1,'o2::monitoring::VariantVisitorRate::operator()(const T &, const U &) const ']]], + ['operator_3c_3c',['operator<<',['../classo2_1_1monitoring_1_1MonLogger.html#a248af7f99d2d663ed38cff9e6900f553',1,'o2::monitoring::MonLogger::operator<<()'],['../classo2_1_1monitoring_1_1transports_1_1StdOut.html#ac418ec1dbb3aab4180af7504e8adbe81',1,'o2::monitoring::transports::StdOut::operator<<()']]], + ['operator_3d',['operator=',['../classo2_1_1monitoring_1_1Monitoring.html#ad2c62aa9bca85c77fa19a5b933db2f5c',1,'o2::monitoring::Monitoring::operator=()'],['../classo2_1_1monitoring_1_1MonitoringFactory.html#aacadbff97348138dd042eec39b058a9f',1,'o2::monitoring::MonitoringFactory::operator=()']]], + ['overloaded',['overloaded',['../structoverloaded.html',1,'']]], + ['overloaded',['overloaded',['../structo2_1_1monitoring_1_1backends_1_1overloaded.html',1,'o2::monitoring::backends']]], + ['overwriteverbosity',['overwriteVerbosity',['../classo2_1_1monitoring_1_1Metric.html#a0535e5ab38995e7f2433f3a08ff45e9c',1,'o2::monitoring::Metric']]], + ['transports',['transports',['../namespaceo2_1_1monitoring_1_1transports.html',1,'o2::monitoring']]] +]; diff --git a/search/all_13.html b/search/all_13.html new file mode 100644 index 000000000..88fa65319 --- /dev/null +++ b/search/all_13.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/all_13.js b/search/all_13.js new file mode 100644 index 000000000..1c49de5e4 --- /dev/null +++ b/search/all_13.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['process',['process',['../classo2_1_1monitoring_1_1DerivedMetrics.html#aa3133c5f7c3855a98d1c4e78a0b763f5',1,'o2::monitoring::DerivedMetrics']]], + ['processdetails',['ProcessDetails',['../classo2_1_1monitoring_1_1ProcessDetails.html#a49de7dfd0da3566fcc4555e328bb3e78',1,'o2::monitoring::ProcessDetails']]], + ['processdetails',['ProcessDetails',['../classo2_1_1monitoring_1_1ProcessDetails.html',1,'o2::monitoring']]], + ['processdetails_2ecxx',['ProcessDetails.cxx',['../ProcessDetails_8cxx.html',1,'']]], + ['processdetails_2eh',['ProcessDetails.h',['../ProcessDetails_8h.html',1,'']]], + ['processmonitor',['ProcessMonitor',['../classo2_1_1monitoring_1_1ProcessMonitor.html#ad499bd2d59f2c86fc53f927f08122460',1,'o2::monitoring::ProcessMonitor']]], + ['processmonitor',['ProcessMonitor',['../classo2_1_1monitoring_1_1ProcessMonitor.html',1,'o2::monitoring']]], + ['processmonitor_2ecxx',['ProcessMonitor.cxx',['../ProcessMonitor_8cxx.html',1,'']]], + ['processmonitor_2eh',['ProcessMonitor.h',['../ProcessMonitor_8h.html',1,'']]] +]; diff --git a/search/all_14.html b/search/all_14.html new file mode 100644 index 000000000..518db1da1 --- /dev/null +++ b/search/all_14.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/all_14.js b/search/all_14.js new file mode 100644 index 000000000..55710107d --- /dev/null +++ b/search/all_14.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['send',['send',['../classo2_1_1monitoring_1_1Backend.html#ad84d28199d142ff3030f6b2c7e785485',1,'o2::monitoring::Backend::send(const Metric &metric)=0'],['../classo2_1_1monitoring_1_1Backend.html#adfbe8f3a11dcdc9feabb03ad95f26c57',1,'o2::monitoring::Backend::send(std::vector< Metric > &&metrics)=0'],['../classo2_1_1monitoring_1_1Monitoring.html#a5419ff3a2a8a28a319b7152b6790c202',1,'o2::monitoring::Monitoring::send()'],['../classo2_1_1monitoring_1_1backends_1_1ApMonBackend.html#a0af4c4214f6487e58e897278a679aeb6',1,'o2::monitoring::backends::ApMonBackend::send(std::vector< Metric > &&metrics) override'],['../classo2_1_1monitoring_1_1backends_1_1ApMonBackend.html#a218fd93ee7cb6e2f8d4aebfd29666b94',1,'o2::monitoring::backends::ApMonBackend::send(const Metric &metric) override'],['../classo2_1_1monitoring_1_1backends_1_1InfluxDB.html#a9432f9b05962004d66673e56703b9586',1,'o2::monitoring::backends::InfluxDB::send(const Metric &metric) override'],['../classo2_1_1monitoring_1_1backends_1_1InfluxDB.html#ae2554d7e3467c666be33615a20ad27d4',1,'o2::monitoring::backends::InfluxDB::send(std::vector< Metric > &&metrics) override'],['../classo2_1_1monitoring_1_1backends_1_1Noop.html#ab8bb7e9d907132f287867b966f204ba6',1,'o2::monitoring::backends::Noop::send(std::vector< Metric > &&) final'],['../classo2_1_1monitoring_1_1backends_1_1Noop.html#ac8d52cee6f868bff5c028f4360903699',1,'o2::monitoring::backends::Noop::send(const Metric &) final'],['../classo2_1_1monitoring_1_1backends_1_1StdOut.html#ac25e9b11cadb4019eab635adb9aef9e3',1,'o2::monitoring::backends::StdOut::send(const Metric &metric) override'],['../classo2_1_1monitoring_1_1backends_1_1StdOut.html#a33714a6bf6b379b9e619ff59d93e70fe',1,'o2::monitoring::backends::StdOut::send(std::vector< Metric > &&metrics) override'],['../classo2_1_1monitoring_1_1transports_1_1HTTP.html#a69caf6b35e7a8f27bef92b513674fc40',1,'o2::monitoring::transports::HTTP::send()'],['../classo2_1_1monitoring_1_1transports_1_1Kafka.html#aa7df39f3e99c91d4259796a38102696d',1,'o2::monitoring::transports::Kafka::send()'],['../classo2_1_1monitoring_1_1transports_1_1StdOut.html#a78957bd9f1a409b565ad14bb0657dfd5',1,'o2::monitoring::transports::StdOut::send()'],['../classo2_1_1monitoring_1_1transports_1_1TCP.html#a1ebb22e3478af54d51a285d4b171b62b',1,'o2::monitoring::transports::TCP::send()'],['../classo2_1_1monitoring_1_1transports_1_1TransportInterface.html#a157d291d9b965e4c224a0232228ecb27',1,'o2::monitoring::transports::TransportInterface::send()'],['../classo2_1_1monitoring_1_1transports_1_1UDP.html#a98abbd5b00501dd472cfeef9d0b91eaa',1,'o2::monitoring::transports::UDP::send()'],['../classo2_1_1monitoring_1_1transports_1_1Unix.html#a405790a04f260e815253a6e921d22af1',1,'o2::monitoring::transports::Unix::send()']]], + ['setdefaultverbosity',['setDefaultVerbosity',['../classo2_1_1monitoring_1_1Metric.html#a47403b0a42664988fd00e672f9b2c68b',1,'o2::monitoring::Metric']]], + ['settags',['setTags',['../classo2_1_1monitoring_1_1Metric.html#aa0f834f2aaa1966cc1c03d0f0ffcdc58',1,'o2::monitoring::Metric']]], + ['setverbosisty',['setVerbosisty',['../classo2_1_1monitoring_1_1Backend.html#ae6c6dd18c638c10a608c572c37f44140',1,'o2::monitoring::Backend']]], + ['setverbositypolicy',['setVerbosityPolicy',['../classo2_1_1monitoring_1_1Metric.html#a3fc03fd295c775b55515d0b7be52a0db',1,'o2::monitoring::Metric']]], + ['severity',['Severity',['../namespaceo2_1_1monitoring.html#a9c3243d9bf6bfe95bef20e2c6b4e4880',1,'o2::monitoring']]], + ['stdout',['StdOut',['../classo2_1_1monitoring_1_1backends_1_1StdOut.html#ab520c63cbcd17b43546eb2537e1bab4d',1,'o2::monitoring::backends::StdOut::StdOut()'],['../classo2_1_1monitoring_1_1transports_1_1StdOut.html#ad7323a5152d639c529d22151818a7843',1,'o2::monitoring::transports::StdOut::StdOut()']]], + ['stdout',['StdOut',['../classo2_1_1monitoring_1_1transports_1_1StdOut.html',1,'o2::monitoring::transports']]], + ['stdout',['StdOut',['../classo2_1_1monitoring_1_1backends_1_1StdOut.html',1,'o2::monitoring::backends']]] +]; diff --git a/search/all_15.html b/search/all_15.html new file mode 100644 index 000000000..1331c0d7a --- /dev/null +++ b/search/all_15.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/all_15.js b/search/all_15.js new file mode 100644 index 000000000..f7e6116a4 --- /dev/null +++ b/search/all_15.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['tags_2eh',['Tags.h',['../Tags_8h.html',1,'']]], + ['tcp',['TCP',['../classo2_1_1monitoring_1_1transports_1_1TCP.html',1,'o2::monitoring::transports']]], + ['tcp',['TCP',['../classo2_1_1monitoring_1_1transports_1_1TCP.html#a9b84231848d8e53a144b4441f0ceb51b',1,'o2::monitoring::transports::TCP']]], + ['tcp_2ecxx',['TCP.cxx',['../TCP_8cxx.html',1,'']]], + ['tcp_2eh',['TCP.h',['../TCP_8h.html',1,'']]], + ['toinfluxlineprotocol',['toInfluxLineProtocol',['../classo2_1_1monitoring_1_1backends_1_1InfluxDB.html#aa074417f8c1d876548bf62c4220c0fea',1,'o2::monitoring::backends::InfluxDB']]], + ['transportinterface',['TransportInterface',['../classo2_1_1monitoring_1_1transports_1_1TransportInterface.html',1,'o2::monitoring::transports']]], + ['transportinterface_2eh',['TransportInterface.h',['../TransportInterface_8h.html',1,'']]] +]; diff --git a/search/all_16.html b/search/all_16.html new file mode 100644 index 000000000..bec9d5ddf --- /dev/null +++ b/search/all_16.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/all_16.js b/search/all_16.js new file mode 100644 index 000000000..430353eeb --- /dev/null +++ b/search/all_16.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['udp',['UDP',['../classo2_1_1monitoring_1_1transports_1_1UDP.html',1,'o2::monitoring::transports']]], + ['udp',['UDP',['../classo2_1_1monitoring_1_1transports_1_1UDP.html#a8c2d0c282e4b743d79a11b8adc896cfe',1,'o2::monitoring::transports::UDP']]], + ['udp_2ecxx',['UDP.cxx',['../UDP_8cxx.html',1,'']]], + ['udp_2eh',['UDP.h',['../UDP_8h.html',1,'']]], + ['unix',['Unix',['../classo2_1_1monitoring_1_1transports_1_1Unix.html#ab8af9f31c79dfa72106149d5834a384a',1,'o2::monitoring::transports::Unix']]], + ['unix',['Unix',['../classo2_1_1monitoring_1_1transports_1_1Unix.html',1,'o2::monitoring::transports']]], + ['unix_2ecxx',['Unix.cxx',['../Unix_8cxx.html',1,'']]], + ['unix_2eh',['Unix.h',['../Unix_8h.html',1,'']]], + ['url',['url',['../structhttp_1_1url.html',1,'http']]] +]; diff --git a/search/all_17.html b/search/all_17.html new file mode 100644 index 000000000..6d010fdd9 --- /dev/null +++ b/search/all_17.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/all_17.js b/search/all_17.js new file mode 100644 index 000000000..833e5dff2 --- /dev/null +++ b/search/all_17.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['variantvisitoradd',['VariantVisitorAdd',['../classo2_1_1monitoring_1_1VariantVisitorAdd.html',1,'o2::monitoring']]], + ['variantvisitorrate',['VariantVisitorRate',['../classo2_1_1monitoring_1_1VariantVisitorRate.html',1,'o2::monitoring']]], + ['variantvisitorrate',['VariantVisitorRate',['../classo2_1_1monitoring_1_1VariantVisitorRate.html#aa336448595cb9579f7c17ea40a472002',1,'o2::monitoring::VariantVisitorRate']]], + ['verbosity',['Verbosity',['../namespaceo2_1_1monitoring.html#abf0810ae9fea21eeca7481815f70f22f',1,'o2::monitoring']]] +]; diff --git a/search/all_18.html b/search/all_18.html new file mode 100644 index 000000000..ebae42c78 --- /dev/null +++ b/search/all_18.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/all_18.js b/search/all_18.js new file mode 100644 index 000000000..015a59f6b --- /dev/null +++ b/search/all_18.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['_7eapmonbackend',['~ApMonBackend',['../classo2_1_1monitoring_1_1backends_1_1ApMonBackend.html#aa4fa3d5079b9fcbe69f0542cda51e7b2',1,'o2::monitoring::backends::ApMonBackend']]], + ['_7ebackend',['~Backend',['../classo2_1_1monitoring_1_1Backend.html#a3f48dbee9ed23635e05ca6912db289df',1,'o2::monitoring::Backend']]], + ['_7ederivedmetrics',['~DerivedMetrics',['../classo2_1_1monitoring_1_1DerivedMetrics.html#acb0059d3cc0c570fc042663596b0f6ae',1,'o2::monitoring::DerivedMetrics']]], + ['_7ehttp',['~HTTP',['../classo2_1_1monitoring_1_1transports_1_1HTTP.html#aa55587e39722549c3a121030ac8489fe',1,'o2::monitoring::transports::HTTP']]], + ['_7einfluxdb',['~InfluxDB',['../classo2_1_1monitoring_1_1backends_1_1InfluxDB.html#a640c23ea2c605c795ceb02cd04163e1c',1,'o2::monitoring::backends::InfluxDB']]], + ['_7ekafka',['~Kafka',['../classo2_1_1monitoring_1_1transports_1_1Kafka.html#a62999e3d14c1fab1c7bd399ff6c1e7e1',1,'o2::monitoring::transports::Kafka']]], + ['_7emetric',['~Metric',['../classo2_1_1monitoring_1_1Metric.html#afc9ab7a124026bad375783c53dc87f4c',1,'o2::monitoring::Metric']]], + ['_7emonitoring',['~Monitoring',['../classo2_1_1monitoring_1_1Monitoring.html#a2c674631acd35e6c23d14ed3233ec83c',1,'o2::monitoring::Monitoring']]], + ['_7enoop',['~Noop',['../classo2_1_1monitoring_1_1backends_1_1Noop.html#a33317243cf50630fa0e04b41e101cf0c',1,'o2::monitoring::backends::Noop']]], + ['_7eprocessmonitor',['~ProcessMonitor',['../classo2_1_1monitoring_1_1ProcessMonitor.html#aac2fbc7b1a2d534970acbf33f0cd0de8',1,'o2::monitoring::ProcessMonitor']]], + ['_7estdout',['~StdOut',['../classo2_1_1monitoring_1_1backends_1_1StdOut.html#abc710b1a9958e71865f95235e031e5fd',1,'o2::monitoring::backends::StdOut::~StdOut()'],['../classo2_1_1monitoring_1_1transports_1_1StdOut.html#ae547eb2c476f0677f694bbd5d7519803',1,'o2::monitoring::transports::StdOut::~StdOut()']]], + ['_7etcp',['~TCP',['../classo2_1_1monitoring_1_1transports_1_1TCP.html#a07f8d869dcf81b9db7f14c8354f50efd',1,'o2::monitoring::transports::TCP']]], + ['_7eudp',['~UDP',['../classo2_1_1monitoring_1_1transports_1_1UDP.html#a914b7b729746f1a1746531aea237c99d',1,'o2::monitoring::transports::UDP']]], + ['_7eunix',['~Unix',['../classo2_1_1monitoring_1_1transports_1_1Unix.html#af1eb4dc9c1610e56341fa4c000938bca',1,'o2::monitoring::transports::Unix']]] +]; diff --git a/search/all_2.html b/search/all_2.html new file mode 100644 index 000000000..d15ac65f7 --- /dev/null +++ b/search/all_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/all_2.js b/search/all_2.js new file mode 100644 index 000000000..c49bf2a50 --- /dev/null +++ b/search/all_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['4_2dratederivedmetric_2ecxx',['4-RateDerivedMetric.cxx',['../4-RateDerivedMetric_8cxx.html',1,'']]] +]; diff --git a/search/all_3.html b/search/all_3.html new file mode 100644 index 000000000..9f526c67c --- /dev/null +++ b/search/all_3.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/all_3.js b/search/all_3.js new file mode 100644 index 000000000..06a3fa991 --- /dev/null +++ b/search/all_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['5_2dbenchmark_2ecxx',['5-Benchmark.cxx',['../5-Benchmark_8cxx.html',1,'']]] +]; diff --git a/search/all_4.html b/search/all_4.html new file mode 100644 index 000000000..7b814aa94 --- /dev/null +++ b/search/all_4.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/all_4.js b/search/all_4.js new file mode 100644 index 000000000..38d45b1ec --- /dev/null +++ b/search/all_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['6_2dincrement_2ecxx',['6-Increment.cxx',['../6-Increment_8cxx.html',1,'']]] +]; diff --git a/search/all_5.html b/search/all_5.html new file mode 100644 index 000000000..d8de5560e --- /dev/null +++ b/search/all_5.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/all_5.js b/search/all_5.js new file mode 100644 index 000000000..8499e0cb9 --- /dev/null +++ b/search/all_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['8_2ddbfiller_2ecxx',['8-DbFiller.cxx',['../8-DbFiller_8cxx.html',1,'']]] +]; diff --git a/search/all_6.html b/search/all_6.html new file mode 100644 index 000000000..9ba0cc2b4 --- /dev/null +++ b/search/all_6.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/all_6.js b/search/all_6.js new file mode 100644 index 000000000..308214332 --- /dev/null +++ b/search/all_6.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['addbackend',['addBackend',['../classo2_1_1monitoring_1_1Monitoring.html#a548350ec288e69ad3777cb3057bf9743',1,'o2::monitoring::Monitoring']]], + ['addglobaltag',['addGlobalTag',['../classo2_1_1monitoring_1_1Backend.html#a67e55a8d7acb63268d1bfa576ddfebe9',1,'o2::monitoring::Backend::addGlobalTag()'],['../classo2_1_1monitoring_1_1Monitoring.html#ab66ef7bf191129aeffe52fb6d53c0d8c',1,'o2::monitoring::Monitoring::addGlobalTag(std::string_view name, std::string_view value)'],['../classo2_1_1monitoring_1_1Monitoring.html#a84a1765cf76a3915bce9c81a3175ddcb',1,'o2::monitoring::Monitoring::addGlobalTag(tags::Key key, tags::Value value)'],['../classo2_1_1monitoring_1_1backends_1_1ApMonBackend.html#a601b1e1037804483972bd5c113b86159',1,'o2::monitoring::backends::ApMonBackend::addGlobalTag()'],['../classo2_1_1monitoring_1_1backends_1_1InfluxDB.html#aa2291ccbf0d0c65d8f498de3091ead97',1,'o2::monitoring::backends::InfluxDB::addGlobalTag()'],['../classo2_1_1monitoring_1_1backends_1_1Noop.html#a39b8fd704f0ec24ac4c94dd8ba7ea238',1,'o2::monitoring::backends::Noop::addGlobalTag()'],['../classo2_1_1monitoring_1_1backends_1_1StdOut.html#a0ebbd8e576966bb26ab08d045ea1c91f',1,'o2::monitoring::backends::StdOut::addGlobalTag()']]], + ['addheader',['addHeader',['../classo2_1_1monitoring_1_1transports_1_1HTTP.html#acec587dec9e7ae1e504d5d93d64013e9',1,'o2::monitoring::transports::HTTP']]], + ['addtag',['addTag',['../classo2_1_1monitoring_1_1Metric.html#a739840029233ff1b30e8596c6cb3337d',1,'o2::monitoring::Metric::addTag(tags::Key key, tags::Value value)'],['../classo2_1_1monitoring_1_1Metric.html#a4ae8e0b1e1cdf74679518f5704220abc',1,'o2::monitoring::Metric::addTag(tags::Key key, unsigned short int number)']]], + ['addvalue',['addValue',['../classo2_1_1monitoring_1_1Metric.html#a70fa1e29fb69c001c3b474844adb08cf',1,'o2::monitoring::Metric::addValue(int value, const std::string &name)'],['../classo2_1_1monitoring_1_1Metric.html#a12e4af5f633f8d3d0cec507c54899991',1,'o2::monitoring::Metric::addValue(double value, const std::string &name)'],['../classo2_1_1monitoring_1_1Metric.html#ae3ac9ba3267a3c45f327448db8aa6a34',1,'o2::monitoring::Metric::addValue(uint64_t value, const std::string &name)'],['../classo2_1_1monitoring_1_1Metric.html#ab73ee51e1ef888f8918bccfd1a89b57d',1,'o2::monitoring::Metric::addValue(std::string value, const std::string &name)'],['../classo2_1_1monitoring_1_1Metric.html#a0aafc233e42eda4e04c8dc2bda75d402',1,'o2::monitoring::Metric::addValue(const std::variant< int, std::string, double, uint64_t > &value, const std::string &name)']]], + ['apmonbackend',['ApMonBackend',['../classo2_1_1monitoring_1_1backends_1_1ApMonBackend.html',1,'o2::monitoring::backends']]], + ['apmonbackend',['ApMonBackend',['../classo2_1_1monitoring_1_1backends_1_1ApMonBackend.html#afb3850ac45d82e127744b413df60955d',1,'o2::monitoring::backends::ApMonBackend']]], + ['apmonbackend_2ecxx',['ApMonBackend.cxx',['../ApMonBackend_8cxx.html',1,'']]], + ['apmonbackend_2eh',['ApMonBackend.h',['../ApMonBackend_8h.html',1,'']]] +]; diff --git a/search/all_7.html b/search/all_7.html new file mode 100644 index 000000000..9384ec9b3 --- /dev/null +++ b/search/all_7.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/all_7.js b/search/all_7.js new file mode 100644 index 000000000..649491d60 --- /dev/null +++ b/search/all_7.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['backend',['Backend',['../classo2_1_1monitoring_1_1Backend.html',1,'o2::monitoring']]], + ['backend',['Backend',['../classo2_1_1monitoring_1_1Backend.html#a8b0fa3aea0ef4a3e2425abe321c1aab0',1,'o2::monitoring::Backend']]], + ['backend_2eh',['Backend.h',['../Backend_8h.html',1,'']]] +]; diff --git a/search/all_8.html b/search/all_8.html new file mode 100644 index 000000000..37566c5d8 --- /dev/null +++ b/search/all_8.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/all_8.js b/search/all_8.js new file mode 100644 index 000000000..cc3c4d5a0 --- /dev/null +++ b/search/all_8.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['converttimestamp',['convertTimestamp',['../classo2_1_1monitoring_1_1backends_1_1InfluxDB.html#aec50b283b62063bf50b4e33f89ecfbd9',1,'o2::monitoring::backends::InfluxDB']]] +]; diff --git a/search/all_9.html b/search/all_9.html new file mode 100644 index 000000000..c8c51023c --- /dev/null +++ b/search/all_9.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/all_9.js b/search/all_9.js new file mode 100644 index 000000000..fd6b80981 --- /dev/null +++ b/search/all_9.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['defaultverbosity',['DefaultVerbosity',['../classo2_1_1monitoring_1_1Metric.html#ae8bab1993bbc7032566bea4ceee935ae',1,'o2::monitoring::Metric']]], + ['derivedmetricmode',['DerivedMetricMode',['../namespaceo2_1_1monitoring.html#afdc1126ed1982b9a501fb36c63110ab2',1,'o2::monitoring']]], + ['derivedmetrics',['DerivedMetrics',['../classo2_1_1monitoring_1_1DerivedMetrics.html#a01e94a78a60246b8dad7628155bbdb83',1,'o2::monitoring::DerivedMetrics']]], + ['derivedmetrics',['DerivedMetrics',['../classo2_1_1monitoring_1_1DerivedMetrics.html',1,'o2::monitoring']]], + ['derivedmetrics_2ecxx',['DerivedMetrics.cxx',['../DerivedMetrics_8cxx.html',1,'']]], + ['derivedmetrics_2eh',['DerivedMetrics.h',['../DerivedMetrics_8h.html',1,'']]] +]; diff --git a/search/all_a.html b/search/all_a.html new file mode 100644 index 000000000..4cb31f0c9 --- /dev/null +++ b/search/all_a.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/all_a.js b/search/all_a.js new file mode 100644 index 000000000..d426b4bba --- /dev/null +++ b/search/all_a.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['enablebuffering',['enableBuffering',['../classo2_1_1monitoring_1_1Monitoring.html#ac7ff75f0d8352f4d4e8a757e3658c561',1,'o2::monitoring::Monitoring']]], + ['enableprocessmonitoring',['enableProcessMonitoring',['../classo2_1_1monitoring_1_1Monitoring.html#aaf4b013523f466f6f2e15bcc321fda0e',1,'o2::monitoring::Monitoring']]], + ['end',['End',['../classo2_1_1monitoring_1_1MonLogger.html#a97914583c739b2b7b0999a4927389ab9',1,'o2::monitoring::MonLogger']]] +]; diff --git a/search/all_b.html b/search/all_b.html new file mode 100644 index 000000000..d34a612ec --- /dev/null +++ b/search/all_b.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/all_b.js b/search/all_b.js new file mode 100644 index 000000000..4ce52ed89 --- /dev/null +++ b/search/all_b.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['flushbuffer',['flushBuffer',['../classo2_1_1monitoring_1_1Monitoring.html#a232628a04646d1188e812ed9c4338788',1,'o2::monitoring::Monitoring']]] +]; diff --git a/search/all_c.html b/search/all_c.html new file mode 100644 index 000000000..c1ae2cae7 --- /dev/null +++ b/search/all_c.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/all_c.js b/search/all_c.js new file mode 100644 index 000000000..f58a16705 --- /dev/null +++ b/search/all_c.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['get',['Get',['../classo2_1_1monitoring_1_1MonitoringFactory.html#a9ce3c7abf17726e38e5353f1fde13945',1,'o2::monitoring::MonitoringFactory::Get()'],['../classo2_1_1monitoring_1_1MonLogger.html#aa011b0e25f80039fc9d1e26d04b1cd60',1,'o2::monitoring::MonLogger::Get()']]], + ['getbackend',['GetBackend',['../classo2_1_1monitoring_1_1MonitoringFactory.html#a10b465079b2994292205015ba4e98314',1,'o2::monitoring::MonitoringFactory']]], + ['getcurrenttimestamp',['getCurrentTimestamp',['../classo2_1_1monitoring_1_1Metric.html#a3d3908ef0ca8ad769395440af0b892bb',1,'o2::monitoring::Metric']]], + ['getfirstvalue',['getFirstValue',['../classo2_1_1monitoring_1_1Metric.html#a85e9c5ee11c64c4123eae91b4ca55a39',1,'o2::monitoring::Metric']]], + ['getfirstvaluetype',['getFirstValueType',['../classo2_1_1monitoring_1_1Metric.html#adf54092f4e8722615b165867f8afddde',1,'o2::monitoring::Metric']]], + ['gethostname',['getHostname',['../classo2_1_1monitoring_1_1ProcessDetails.html#a6e22e79867e10077e59c86e7ccc291e5',1,'o2::monitoring::ProcessDetails']]], + ['getinfluxdbv2',['getInfluxDbv2',['../namespaceo2_1_1monitoring.html#a22b5140ed5a3b091a687453c219befc4',1,'o2::monitoring']]], + ['getname',['getName',['../classo2_1_1monitoring_1_1Metric.html#a6975c4d70004b881258ef17c116c874f',1,'o2::monitoring::Metric']]], + ['getpid',['getPid',['../classo2_1_1monitoring_1_1ProcessDetails.html#a98a272bf070c0e46f7e4beca9ac02ba6',1,'o2::monitoring::ProcessDetails']]], + ['getprocessname',['getProcessName',['../classo2_1_1monitoring_1_1ProcessDetails.html#a8cdd3b7bcad6e695db26d177d44f7d6e',1,'o2::monitoring::ProcessDetails']]], + ['gettags',['getTags',['../classo2_1_1monitoring_1_1Metric.html#a148981e1c1dd787f1f8b4cbba9c19558',1,'o2::monitoring::Metric']]], + ['gettimestamp',['getTimestamp',['../classo2_1_1monitoring_1_1Metric.html#a7ac79817604203da55c2727f458392c7',1,'o2::monitoring::Metric']]], + ['getvalues',['getValues',['../classo2_1_1monitoring_1_1Metric.html#a6263c5769df042005548b449e65c8634',1,'o2::monitoring::Metric']]], + ['getvaluessize',['getValuesSize',['../classo2_1_1monitoring_1_1Metric.html#afcffda51253bf3586154c337d360c156',1,'o2::monitoring::Metric']]], + ['getverbosity',['getVerbosity',['../classo2_1_1monitoring_1_1Backend.html#ae34b9d32981f24f869b4944046789c0e',1,'o2::monitoring::Backend::getVerbosity()'],['../classo2_1_1monitoring_1_1Metric.html#ac5d1257c85b09e1f1dc60ab533da3d9e',1,'o2::monitoring::Metric::getVerbosity()']]] +]; diff --git a/search/all_d.html b/search/all_d.html new file mode 100644 index 000000000..712223c66 --- /dev/null +++ b/search/all_d.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/all_d.js b/search/all_d.js new file mode 100644 index 000000000..95b6761e3 --- /dev/null +++ b/search/all_d.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['http',['HTTP',['../classo2_1_1monitoring_1_1transports_1_1HTTP.html',1,'o2::monitoring::transports']]], + ['http',['HTTP',['../classo2_1_1monitoring_1_1transports_1_1HTTP.html#a3bfd3929898babadd8b90f80c2300da5',1,'o2::monitoring::transports::HTTP']]], + ['http_2ecxx',['HTTP.cxx',['../HTTP_8cxx.html',1,'']]], + ['http_2eh',['HTTP.h',['../HTTP_8h.html',1,'']]] +]; diff --git a/search/all_e.html b/search/all_e.html new file mode 100644 index 000000000..d553ffa22 --- /dev/null +++ b/search/all_e.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/all_e.js b/search/all_e.js new file mode 100644 index 000000000..7920f19a3 --- /dev/null +++ b/search/all_e.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['includetimestamp',['includeTimestamp',['../classo2_1_1monitoring_1_1Metric.html#aea83b5c7c4365d2e686a1c314c267bac',1,'o2::monitoring::Metric']]], + ['influxdb',['InfluxDB',['../classo2_1_1monitoring_1_1backends_1_1InfluxDB.html',1,'o2::monitoring::backends']]], + ['influxdb',['InfluxDB',['../classo2_1_1monitoring_1_1backends_1_1InfluxDB.html#a9cabd71c97bd8cfac2507eeaa0924d2a',1,'o2::monitoring::backends::InfluxDB']]], + ['influxdb_2ecxx',['InfluxDB.cxx',['../InfluxDB_8cxx.html',1,'']]], + ['influxdb_2eh',['InfluxDB.h',['../InfluxDB_8h.html',1,'']]], + ['instructions_20for_20dpl_20users',['Instructions for DPL users',['../md_DPL.html',1,'']]] +]; diff --git a/search/all_f.html b/search/all_f.html new file mode 100644 index 000000000..c77391a04 --- /dev/null +++ b/search/all_f.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/all_f.js b/search/all_f.js new file mode 100644 index 000000000..7cf6bc3ce --- /dev/null +++ b/search/all_f.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['kafka',['Kafka',['../classo2_1_1monitoring_1_1transports_1_1Kafka.html',1,'o2::monitoring::transports']]], + ['kafka',['Kafka',['../classo2_1_1monitoring_1_1transports_1_1Kafka.html#a03901cc9636a21772dd51d258363947e',1,'o2::monitoring::transports::Kafka']]], + ['kafka_2ecxx',['Kafka.cxx',['../Kafka_8cxx.html',1,'']]], + ['kafka_2eh',['Kafka.h',['../Kafka_8h.html',1,'']]] +]; diff --git a/search/classes_0.html b/search/classes_0.html new file mode 100644 index 000000000..025587a71 --- /dev/null +++ b/search/classes_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/classes_0.js b/search/classes_0.js new file mode 100644 index 000000000..0d8ea8bff --- /dev/null +++ b/search/classes_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['apmonbackend',['ApMonBackend',['../classo2_1_1monitoring_1_1backends_1_1ApMonBackend.html',1,'o2::monitoring::backends']]] +]; diff --git a/search/classes_1.html b/search/classes_1.html new file mode 100644 index 000000000..86dc4ffe6 --- /dev/null +++ b/search/classes_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/classes_1.js b/search/classes_1.js new file mode 100644 index 000000000..45120d649 --- /dev/null +++ b/search/classes_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['backend',['Backend',['../classo2_1_1monitoring_1_1Backend.html',1,'o2::monitoring']]] +]; diff --git a/search/classes_2.html b/search/classes_2.html new file mode 100644 index 000000000..014caf809 --- /dev/null +++ b/search/classes_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/classes_2.js b/search/classes_2.js new file mode 100644 index 000000000..717d0a7d5 --- /dev/null +++ b/search/classes_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['derivedmetrics',['DerivedMetrics',['../classo2_1_1monitoring_1_1DerivedMetrics.html',1,'o2::monitoring']]] +]; diff --git a/search/classes_3.html b/search/classes_3.html new file mode 100644 index 000000000..2e9720118 --- /dev/null +++ b/search/classes_3.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/classes_3.js b/search/classes_3.js new file mode 100644 index 000000000..1476e928d --- /dev/null +++ b/search/classes_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['http',['HTTP',['../classo2_1_1monitoring_1_1transports_1_1HTTP.html',1,'o2::monitoring::transports']]] +]; diff --git a/search/classes_4.html b/search/classes_4.html new file mode 100644 index 000000000..776fee375 --- /dev/null +++ b/search/classes_4.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/classes_4.js b/search/classes_4.js new file mode 100644 index 000000000..604f6606f --- /dev/null +++ b/search/classes_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['influxdb',['InfluxDB',['../classo2_1_1monitoring_1_1backends_1_1InfluxDB.html',1,'o2::monitoring::backends']]] +]; diff --git a/search/classes_5.html b/search/classes_5.html new file mode 100644 index 000000000..69bbcc8bf --- /dev/null +++ b/search/classes_5.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/classes_5.js b/search/classes_5.js new file mode 100644 index 000000000..498ab0562 --- /dev/null +++ b/search/classes_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['kafka',['Kafka',['../classo2_1_1monitoring_1_1transports_1_1Kafka.html',1,'o2::monitoring::transports']]] +]; diff --git a/search/classes_6.html b/search/classes_6.html new file mode 100644 index 000000000..2db08a014 --- /dev/null +++ b/search/classes_6.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/classes_6.js b/search/classes_6.js new file mode 100644 index 000000000..d6a5a39b3 --- /dev/null +++ b/search/classes_6.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['metric',['Metric',['../classo2_1_1monitoring_1_1Metric.html',1,'o2::monitoring']]], + ['monitoring',['Monitoring',['../classo2_1_1monitoring_1_1Monitoring.html',1,'o2::monitoring']]], + ['monitoringexception',['MonitoringException',['../classo2_1_1monitoring_1_1MonitoringException.html',1,'o2::monitoring']]], + ['monitoringfactory',['MonitoringFactory',['../classo2_1_1monitoring_1_1MonitoringFactory.html',1,'o2::monitoring']]], + ['monlogger',['MonLogger',['../classo2_1_1monitoring_1_1MonLogger.html',1,'o2::monitoring']]] +]; diff --git a/search/classes_7.html b/search/classes_7.html new file mode 100644 index 000000000..fd67346e6 --- /dev/null +++ b/search/classes_7.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/classes_7.js b/search/classes_7.js new file mode 100644 index 000000000..829eacfbb --- /dev/null +++ b/search/classes_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['noop',['Noop',['../classo2_1_1monitoring_1_1backends_1_1Noop.html',1,'o2::monitoring::backends']]] +]; diff --git a/search/classes_8.html b/search/classes_8.html new file mode 100644 index 000000000..369fe529a --- /dev/null +++ b/search/classes_8.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/classes_8.js b/search/classes_8.js new file mode 100644 index 000000000..ec07abed1 --- /dev/null +++ b/search/classes_8.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['overloaded',['overloaded',['../structoverloaded.html',1,'']]], + ['overloaded',['overloaded',['../structo2_1_1monitoring_1_1backends_1_1overloaded.html',1,'o2::monitoring::backends']]] +]; diff --git a/search/classes_9.html b/search/classes_9.html new file mode 100644 index 000000000..188dbb380 --- /dev/null +++ b/search/classes_9.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/classes_9.js b/search/classes_9.js new file mode 100644 index 000000000..c730984c4 --- /dev/null +++ b/search/classes_9.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['processdetails',['ProcessDetails',['../classo2_1_1monitoring_1_1ProcessDetails.html',1,'o2::monitoring']]], + ['processmonitor',['ProcessMonitor',['../classo2_1_1monitoring_1_1ProcessMonitor.html',1,'o2::monitoring']]] +]; diff --git a/search/classes_a.html b/search/classes_a.html new file mode 100644 index 000000000..e7610d355 --- /dev/null +++ b/search/classes_a.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/classes_a.js b/search/classes_a.js new file mode 100644 index 000000000..2037fc962 --- /dev/null +++ b/search/classes_a.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['stdout',['StdOut',['../classo2_1_1monitoring_1_1transports_1_1StdOut.html',1,'o2::monitoring::transports']]], + ['stdout',['StdOut',['../classo2_1_1monitoring_1_1backends_1_1StdOut.html',1,'o2::monitoring::backends']]] +]; diff --git a/search/classes_b.html b/search/classes_b.html new file mode 100644 index 000000000..4fc0a3f69 --- /dev/null +++ b/search/classes_b.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/classes_b.js b/search/classes_b.js new file mode 100644 index 000000000..442d83a5e --- /dev/null +++ b/search/classes_b.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['tcp',['TCP',['../classo2_1_1monitoring_1_1transports_1_1TCP.html',1,'o2::monitoring::transports']]], + ['transportinterface',['TransportInterface',['../classo2_1_1monitoring_1_1transports_1_1TransportInterface.html',1,'o2::monitoring::transports']]] +]; diff --git a/search/classes_c.html b/search/classes_c.html new file mode 100644 index 000000000..d2a582ec4 --- /dev/null +++ b/search/classes_c.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/classes_c.js b/search/classes_c.js new file mode 100644 index 000000000..1ecafae5c --- /dev/null +++ b/search/classes_c.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['udp',['UDP',['../classo2_1_1monitoring_1_1transports_1_1UDP.html',1,'o2::monitoring::transports']]], + ['unix',['Unix',['../classo2_1_1monitoring_1_1transports_1_1Unix.html',1,'o2::monitoring::transports']]], + ['url',['url',['../structhttp_1_1url.html',1,'http']]] +]; diff --git a/search/classes_d.html b/search/classes_d.html new file mode 100644 index 000000000..0fa42149b --- /dev/null +++ b/search/classes_d.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/classes_d.js b/search/classes_d.js new file mode 100644 index 000000000..14fa9e47c --- /dev/null +++ b/search/classes_d.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['variantvisitoradd',['VariantVisitorAdd',['../classo2_1_1monitoring_1_1VariantVisitorAdd.html',1,'o2::monitoring']]], + ['variantvisitorrate',['VariantVisitorRate',['../classo2_1_1monitoring_1_1VariantVisitorRate.html',1,'o2::monitoring']]] +]; diff --git a/search/close.png b/search/close.png new file mode 100644 index 000000000..9342d3dfe Binary files /dev/null and b/search/close.png differ diff --git a/search/enums_0.html b/search/enums_0.html new file mode 100644 index 000000000..aba8d799d --- /dev/null +++ b/search/enums_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/enums_0.js b/search/enums_0.js new file mode 100644 index 000000000..1cebeaf19 --- /dev/null +++ b/search/enums_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['derivedmetricmode',['DerivedMetricMode',['../namespaceo2_1_1monitoring.html#afdc1126ed1982b9a501fb36c63110ab2',1,'o2::monitoring']]] +]; diff --git a/search/enums_1.html b/search/enums_1.html new file mode 100644 index 000000000..a8d384301 --- /dev/null +++ b/search/enums_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/enums_1.js b/search/enums_1.js new file mode 100644 index 000000000..df82ed503 --- /dev/null +++ b/search/enums_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['metrictype',['MetricType',['../namespaceo2_1_1monitoring.html#aec92be89e539614c82f3e7ecacfd2b41',1,'o2::monitoring']]] +]; diff --git a/search/enums_2.html b/search/enums_2.html new file mode 100644 index 000000000..ef7d63295 --- /dev/null +++ b/search/enums_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/enums_2.js b/search/enums_2.js new file mode 100644 index 000000000..9b2c37cbf --- /dev/null +++ b/search/enums_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['severity',['Severity',['../namespaceo2_1_1monitoring.html#a9c3243d9bf6bfe95bef20e2c6b4e4880',1,'o2::monitoring']]] +]; diff --git a/search/enums_3.html b/search/enums_3.html new file mode 100644 index 000000000..57bac2ef7 --- /dev/null +++ b/search/enums_3.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/enums_3.js b/search/enums_3.js new file mode 100644 index 000000000..253f2c5e8 --- /dev/null +++ b/search/enums_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['verbosity',['Verbosity',['../namespaceo2_1_1monitoring.html#abf0810ae9fea21eeca7481815f70f22f',1,'o2::monitoring']]] +]; diff --git a/search/files_0.html b/search/files_0.html new file mode 100644 index 000000000..0b637cf9c --- /dev/null +++ b/search/files_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/files_0.js b/search/files_0.js new file mode 100644 index 000000000..f53adba65 --- /dev/null +++ b/search/files_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['1_2dbasic_2ecxx',['1-Basic.cxx',['../1-Basic_8cxx.html',1,'']]], + ['10_2dbuffering_2ecxx',['10-Buffering.cxx',['../10-Buffering_8cxx.html',1,'']]] +]; diff --git a/search/files_1.html b/search/files_1.html new file mode 100644 index 000000000..1094e74a4 --- /dev/null +++ b/search/files_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/files_1.js b/search/files_1.js new file mode 100644 index 000000000..754720ea0 --- /dev/null +++ b/search/files_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['2_2dtaggedmetrics_2ecxx',['2-TaggedMetrics.cxx',['../2-TaggedMetrics_8cxx.html',1,'']]] +]; diff --git a/search/files_10.html b/search/files_10.html new file mode 100644 index 000000000..58e9714b9 --- /dev/null +++ b/search/files_10.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/files_10.js b/search/files_10.js new file mode 100644 index 000000000..dfd047e9e --- /dev/null +++ b/search/files_10.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['udp_2ecxx',['UDP.cxx',['../UDP_8cxx.html',1,'']]], + ['udp_2eh',['UDP.h',['../UDP_8h.html',1,'']]], + ['unix_2ecxx',['Unix.cxx',['../Unix_8cxx.html',1,'']]], + ['unix_2eh',['Unix.h',['../Unix_8h.html',1,'']]] +]; diff --git a/search/files_2.html b/search/files_2.html new file mode 100644 index 000000000..a08dbd36c --- /dev/null +++ b/search/files_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/files_2.js b/search/files_2.js new file mode 100644 index 000000000..c49bf2a50 --- /dev/null +++ b/search/files_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['4_2dratederivedmetric_2ecxx',['4-RateDerivedMetric.cxx',['../4-RateDerivedMetric_8cxx.html',1,'']]] +]; diff --git a/search/files_3.html b/search/files_3.html new file mode 100644 index 000000000..647fc8d0b --- /dev/null +++ b/search/files_3.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/files_3.js b/search/files_3.js new file mode 100644 index 000000000..06a3fa991 --- /dev/null +++ b/search/files_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['5_2dbenchmark_2ecxx',['5-Benchmark.cxx',['../5-Benchmark_8cxx.html',1,'']]] +]; diff --git a/search/files_4.html b/search/files_4.html new file mode 100644 index 000000000..186557a6c --- /dev/null +++ b/search/files_4.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/files_4.js b/search/files_4.js new file mode 100644 index 000000000..38d45b1ec --- /dev/null +++ b/search/files_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['6_2dincrement_2ecxx',['6-Increment.cxx',['../6-Increment_8cxx.html',1,'']]] +]; diff --git a/search/files_5.html b/search/files_5.html new file mode 100644 index 000000000..671abd347 --- /dev/null +++ b/search/files_5.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/files_5.js b/search/files_5.js new file mode 100644 index 000000000..8499e0cb9 --- /dev/null +++ b/search/files_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['8_2ddbfiller_2ecxx',['8-DbFiller.cxx',['../8-DbFiller_8cxx.html',1,'']]] +]; diff --git a/search/files_6.html b/search/files_6.html new file mode 100644 index 000000000..73aff188f --- /dev/null +++ b/search/files_6.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/files_6.js b/search/files_6.js new file mode 100644 index 000000000..8d054f3f2 --- /dev/null +++ b/search/files_6.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['apmonbackend_2ecxx',['ApMonBackend.cxx',['../ApMonBackend_8cxx.html',1,'']]], + ['apmonbackend_2eh',['ApMonBackend.h',['../ApMonBackend_8h.html',1,'']]] +]; diff --git a/search/files_7.html b/search/files_7.html new file mode 100644 index 000000000..364f42023 --- /dev/null +++ b/search/files_7.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/files_7.js b/search/files_7.js new file mode 100644 index 000000000..ec3d0b8eb --- /dev/null +++ b/search/files_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['backend_2eh',['Backend.h',['../Backend_8h.html',1,'']]] +]; diff --git a/search/files_8.html b/search/files_8.html new file mode 100644 index 000000000..f9f7943f6 --- /dev/null +++ b/search/files_8.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/files_8.js b/search/files_8.js new file mode 100644 index 000000000..a726b85f6 --- /dev/null +++ b/search/files_8.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['derivedmetrics_2ecxx',['DerivedMetrics.cxx',['../DerivedMetrics_8cxx.html',1,'']]], + ['derivedmetrics_2eh',['DerivedMetrics.h',['../DerivedMetrics_8h.html',1,'']]] +]; diff --git a/search/files_9.html b/search/files_9.html new file mode 100644 index 000000000..306f00028 --- /dev/null +++ b/search/files_9.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/files_9.js b/search/files_9.js new file mode 100644 index 000000000..c9cac383a --- /dev/null +++ b/search/files_9.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['http_2ecxx',['HTTP.cxx',['../HTTP_8cxx.html',1,'']]], + ['http_2eh',['HTTP.h',['../HTTP_8h.html',1,'']]] +]; diff --git a/search/files_a.html b/search/files_a.html new file mode 100644 index 000000000..2f6ff8fe1 --- /dev/null +++ b/search/files_a.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/files_a.js b/search/files_a.js new file mode 100644 index 000000000..40a75b13d --- /dev/null +++ b/search/files_a.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['influxdb_2ecxx',['InfluxDB.cxx',['../InfluxDB_8cxx.html',1,'']]], + ['influxdb_2eh',['InfluxDB.h',['../InfluxDB_8h.html',1,'']]] +]; diff --git a/search/files_b.html b/search/files_b.html new file mode 100644 index 000000000..3e51d90e7 --- /dev/null +++ b/search/files_b.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/files_b.js b/search/files_b.js new file mode 100644 index 000000000..b2fccb03c --- /dev/null +++ b/search/files_b.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['kafka_2ecxx',['Kafka.cxx',['../Kafka_8cxx.html',1,'']]], + ['kafka_2eh',['Kafka.h',['../Kafka_8h.html',1,'']]] +]; diff --git a/search/files_c.html b/search/files_c.html new file mode 100644 index 000000000..af4920295 --- /dev/null +++ b/search/files_c.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/files_c.js b/search/files_c.js new file mode 100644 index 000000000..9b017c5ed --- /dev/null +++ b/search/files_c.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['metric_2ecxx',['Metric.cxx',['../Metric_8cxx.html',1,'']]], + ['metric_2eh',['Metric.h',['../Metric_8h.html',1,'']]], + ['monitoring_2ecxx',['Monitoring.cxx',['../Monitoring_8cxx.html',1,'']]], + ['monitoring_2eh',['Monitoring.h',['../Monitoring_8h.html',1,'']]], + ['monitoringexception_2ecxx',['MonitoringException.cxx',['../MonitoringException_8cxx.html',1,'']]], + ['monitoringexception_2eh',['MonitoringException.h',['../MonitoringException_8h.html',1,'']]], + ['monitoringfactory_2ecxx',['MonitoringFactory.cxx',['../MonitoringFactory_8cxx.html',1,'']]], + ['monitoringfactory_2eh',['MonitoringFactory.h',['../MonitoringFactory_8h.html',1,'']]], + ['monlogger_2eh',['MonLogger.h',['../MonLogger_8h.html',1,'']]] +]; diff --git a/search/files_d.html b/search/files_d.html new file mode 100644 index 000000000..3d4c2c220 --- /dev/null +++ b/search/files_d.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/files_d.js b/search/files_d.js new file mode 100644 index 000000000..96753b93f --- /dev/null +++ b/search/files_d.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['noop_2eh',['Noop.h',['../Noop_8h.html',1,'']]] +]; diff --git a/search/files_e.html b/search/files_e.html new file mode 100644 index 000000000..70516d620 --- /dev/null +++ b/search/files_e.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/files_e.js b/search/files_e.js new file mode 100644 index 000000000..bbb529074 --- /dev/null +++ b/search/files_e.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['processdetails_2ecxx',['ProcessDetails.cxx',['../ProcessDetails_8cxx.html',1,'']]], + ['processdetails_2eh',['ProcessDetails.h',['../ProcessDetails_8h.html',1,'']]], + ['processmonitor_2ecxx',['ProcessMonitor.cxx',['../ProcessMonitor_8cxx.html',1,'']]], + ['processmonitor_2eh',['ProcessMonitor.h',['../ProcessMonitor_8h.html',1,'']]] +]; diff --git a/search/files_f.html b/search/files_f.html new file mode 100644 index 000000000..147a74e9b --- /dev/null +++ b/search/files_f.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/files_f.js b/search/files_f.js new file mode 100644 index 000000000..e88737264 --- /dev/null +++ b/search/files_f.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['tags_2eh',['Tags.h',['../Tags_8h.html',1,'']]], + ['tcp_2ecxx',['TCP.cxx',['../TCP_8cxx.html',1,'']]], + ['tcp_2eh',['TCP.h',['../TCP_8h.html',1,'']]], + ['transportinterface_2eh',['TransportInterface.h',['../TransportInterface_8h.html',1,'']]] +]; diff --git a/search/functions_0.html b/search/functions_0.html new file mode 100644 index 000000000..6bc52b619 --- /dev/null +++ b/search/functions_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/functions_0.js b/search/functions_0.js new file mode 100644 index 000000000..e7366c494 --- /dev/null +++ b/search/functions_0.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['addbackend',['addBackend',['../classo2_1_1monitoring_1_1Monitoring.html#a548350ec288e69ad3777cb3057bf9743',1,'o2::monitoring::Monitoring']]], + ['addglobaltag',['addGlobalTag',['../classo2_1_1monitoring_1_1Backend.html#a67e55a8d7acb63268d1bfa576ddfebe9',1,'o2::monitoring::Backend::addGlobalTag()'],['../classo2_1_1monitoring_1_1Monitoring.html#ab66ef7bf191129aeffe52fb6d53c0d8c',1,'o2::monitoring::Monitoring::addGlobalTag(std::string_view name, std::string_view value)'],['../classo2_1_1monitoring_1_1Monitoring.html#a84a1765cf76a3915bce9c81a3175ddcb',1,'o2::monitoring::Monitoring::addGlobalTag(tags::Key key, tags::Value value)'],['../classo2_1_1monitoring_1_1backends_1_1ApMonBackend.html#a601b1e1037804483972bd5c113b86159',1,'o2::monitoring::backends::ApMonBackend::addGlobalTag()'],['../classo2_1_1monitoring_1_1backends_1_1InfluxDB.html#aa2291ccbf0d0c65d8f498de3091ead97',1,'o2::monitoring::backends::InfluxDB::addGlobalTag()'],['../classo2_1_1monitoring_1_1backends_1_1Noop.html#a39b8fd704f0ec24ac4c94dd8ba7ea238',1,'o2::monitoring::backends::Noop::addGlobalTag()'],['../classo2_1_1monitoring_1_1backends_1_1StdOut.html#a0ebbd8e576966bb26ab08d045ea1c91f',1,'o2::monitoring::backends::StdOut::addGlobalTag()']]], + ['addheader',['addHeader',['../classo2_1_1monitoring_1_1transports_1_1HTTP.html#acec587dec9e7ae1e504d5d93d64013e9',1,'o2::monitoring::transports::HTTP']]], + ['addtag',['addTag',['../classo2_1_1monitoring_1_1Metric.html#a739840029233ff1b30e8596c6cb3337d',1,'o2::monitoring::Metric::addTag(tags::Key key, tags::Value value)'],['../classo2_1_1monitoring_1_1Metric.html#a4ae8e0b1e1cdf74679518f5704220abc',1,'o2::monitoring::Metric::addTag(tags::Key key, unsigned short int number)']]], + ['addvalue',['addValue',['../classo2_1_1monitoring_1_1Metric.html#a70fa1e29fb69c001c3b474844adb08cf',1,'o2::monitoring::Metric::addValue(int value, const std::string &name)'],['../classo2_1_1monitoring_1_1Metric.html#a12e4af5f633f8d3d0cec507c54899991',1,'o2::monitoring::Metric::addValue(double value, const std::string &name)'],['../classo2_1_1monitoring_1_1Metric.html#ae3ac9ba3267a3c45f327448db8aa6a34',1,'o2::monitoring::Metric::addValue(uint64_t value, const std::string &name)'],['../classo2_1_1monitoring_1_1Metric.html#ab73ee51e1ef888f8918bccfd1a89b57d',1,'o2::monitoring::Metric::addValue(std::string value, const std::string &name)'],['../classo2_1_1monitoring_1_1Metric.html#a0aafc233e42eda4e04c8dc2bda75d402',1,'o2::monitoring::Metric::addValue(const std::variant< int, std::string, double, uint64_t > &value, const std::string &name)']]], + ['apmonbackend',['ApMonBackend',['../classo2_1_1monitoring_1_1backends_1_1ApMonBackend.html#afb3850ac45d82e127744b413df60955d',1,'o2::monitoring::backends::ApMonBackend']]] +]; diff --git a/search/functions_1.html b/search/functions_1.html new file mode 100644 index 000000000..648831fd7 --- /dev/null +++ b/search/functions_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/functions_1.js b/search/functions_1.js new file mode 100644 index 000000000..586e406b5 --- /dev/null +++ b/search/functions_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['backend',['Backend',['../classo2_1_1monitoring_1_1Backend.html#a8b0fa3aea0ef4a3e2425abe321c1aab0',1,'o2::monitoring::Backend']]] +]; diff --git a/search/functions_10.html b/search/functions_10.html new file mode 100644 index 000000000..8bc4de4a7 --- /dev/null +++ b/search/functions_10.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/functions_10.js b/search/functions_10.js new file mode 100644 index 000000000..4e456727a --- /dev/null +++ b/search/functions_10.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['udp',['UDP',['../classo2_1_1monitoring_1_1transports_1_1UDP.html#a8c2d0c282e4b743d79a11b8adc896cfe',1,'o2::monitoring::transports::UDP']]], + ['unix',['Unix',['../classo2_1_1monitoring_1_1transports_1_1Unix.html#ab8af9f31c79dfa72106149d5834a384a',1,'o2::monitoring::transports::Unix']]] +]; diff --git a/search/functions_11.html b/search/functions_11.html new file mode 100644 index 000000000..e1e427c17 --- /dev/null +++ b/search/functions_11.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/functions_11.js b/search/functions_11.js new file mode 100644 index 000000000..959be0173 --- /dev/null +++ b/search/functions_11.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['variantvisitorrate',['VariantVisitorRate',['../classo2_1_1monitoring_1_1VariantVisitorRate.html#aa336448595cb9579f7c17ea40a472002',1,'o2::monitoring::VariantVisitorRate']]] +]; diff --git a/search/functions_12.html b/search/functions_12.html new file mode 100644 index 000000000..8dac9d29b --- /dev/null +++ b/search/functions_12.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/functions_12.js b/search/functions_12.js new file mode 100644 index 000000000..015a59f6b --- /dev/null +++ b/search/functions_12.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['_7eapmonbackend',['~ApMonBackend',['../classo2_1_1monitoring_1_1backends_1_1ApMonBackend.html#aa4fa3d5079b9fcbe69f0542cda51e7b2',1,'o2::monitoring::backends::ApMonBackend']]], + ['_7ebackend',['~Backend',['../classo2_1_1monitoring_1_1Backend.html#a3f48dbee9ed23635e05ca6912db289df',1,'o2::monitoring::Backend']]], + ['_7ederivedmetrics',['~DerivedMetrics',['../classo2_1_1monitoring_1_1DerivedMetrics.html#acb0059d3cc0c570fc042663596b0f6ae',1,'o2::monitoring::DerivedMetrics']]], + ['_7ehttp',['~HTTP',['../classo2_1_1monitoring_1_1transports_1_1HTTP.html#aa55587e39722549c3a121030ac8489fe',1,'o2::monitoring::transports::HTTP']]], + ['_7einfluxdb',['~InfluxDB',['../classo2_1_1monitoring_1_1backends_1_1InfluxDB.html#a640c23ea2c605c795ceb02cd04163e1c',1,'o2::monitoring::backends::InfluxDB']]], + ['_7ekafka',['~Kafka',['../classo2_1_1monitoring_1_1transports_1_1Kafka.html#a62999e3d14c1fab1c7bd399ff6c1e7e1',1,'o2::monitoring::transports::Kafka']]], + ['_7emetric',['~Metric',['../classo2_1_1monitoring_1_1Metric.html#afc9ab7a124026bad375783c53dc87f4c',1,'o2::monitoring::Metric']]], + ['_7emonitoring',['~Monitoring',['../classo2_1_1monitoring_1_1Monitoring.html#a2c674631acd35e6c23d14ed3233ec83c',1,'o2::monitoring::Monitoring']]], + ['_7enoop',['~Noop',['../classo2_1_1monitoring_1_1backends_1_1Noop.html#a33317243cf50630fa0e04b41e101cf0c',1,'o2::monitoring::backends::Noop']]], + ['_7eprocessmonitor',['~ProcessMonitor',['../classo2_1_1monitoring_1_1ProcessMonitor.html#aac2fbc7b1a2d534970acbf33f0cd0de8',1,'o2::monitoring::ProcessMonitor']]], + ['_7estdout',['~StdOut',['../classo2_1_1monitoring_1_1backends_1_1StdOut.html#abc710b1a9958e71865f95235e031e5fd',1,'o2::monitoring::backends::StdOut::~StdOut()'],['../classo2_1_1monitoring_1_1transports_1_1StdOut.html#ae547eb2c476f0677f694bbd5d7519803',1,'o2::monitoring::transports::StdOut::~StdOut()']]], + ['_7etcp',['~TCP',['../classo2_1_1monitoring_1_1transports_1_1TCP.html#a07f8d869dcf81b9db7f14c8354f50efd',1,'o2::monitoring::transports::TCP']]], + ['_7eudp',['~UDP',['../classo2_1_1monitoring_1_1transports_1_1UDP.html#a914b7b729746f1a1746531aea237c99d',1,'o2::monitoring::transports::UDP']]], + ['_7eunix',['~Unix',['../classo2_1_1monitoring_1_1transports_1_1Unix.html#af1eb4dc9c1610e56341fa4c000938bca',1,'o2::monitoring::transports::Unix']]] +]; diff --git a/search/functions_2.html b/search/functions_2.html new file mode 100644 index 000000000..c93d08946 --- /dev/null +++ b/search/functions_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/functions_2.js b/search/functions_2.js new file mode 100644 index 000000000..cc3c4d5a0 --- /dev/null +++ b/search/functions_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['converttimestamp',['convertTimestamp',['../classo2_1_1monitoring_1_1backends_1_1InfluxDB.html#aec50b283b62063bf50b4e33f89ecfbd9',1,'o2::monitoring::backends::InfluxDB']]] +]; diff --git a/search/functions_3.html b/search/functions_3.html new file mode 100644 index 000000000..caa48ea26 --- /dev/null +++ b/search/functions_3.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/functions_3.js b/search/functions_3.js new file mode 100644 index 000000000..0ab71c2f2 --- /dev/null +++ b/search/functions_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['derivedmetrics',['DerivedMetrics',['../classo2_1_1monitoring_1_1DerivedMetrics.html#a01e94a78a60246b8dad7628155bbdb83',1,'o2::monitoring::DerivedMetrics']]] +]; diff --git a/search/functions_4.html b/search/functions_4.html new file mode 100644 index 000000000..a9c64adf9 --- /dev/null +++ b/search/functions_4.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/functions_4.js b/search/functions_4.js new file mode 100644 index 000000000..d426b4bba --- /dev/null +++ b/search/functions_4.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['enablebuffering',['enableBuffering',['../classo2_1_1monitoring_1_1Monitoring.html#ac7ff75f0d8352f4d4e8a757e3658c561',1,'o2::monitoring::Monitoring']]], + ['enableprocessmonitoring',['enableProcessMonitoring',['../classo2_1_1monitoring_1_1Monitoring.html#aaf4b013523f466f6f2e15bcc321fda0e',1,'o2::monitoring::Monitoring']]], + ['end',['End',['../classo2_1_1monitoring_1_1MonLogger.html#a97914583c739b2b7b0999a4927389ab9',1,'o2::monitoring::MonLogger']]] +]; diff --git a/search/functions_5.html b/search/functions_5.html new file mode 100644 index 000000000..9d135fa08 --- /dev/null +++ b/search/functions_5.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/functions_5.js b/search/functions_5.js new file mode 100644 index 000000000..4ce52ed89 --- /dev/null +++ b/search/functions_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['flushbuffer',['flushBuffer',['../classo2_1_1monitoring_1_1Monitoring.html#a232628a04646d1188e812ed9c4338788',1,'o2::monitoring::Monitoring']]] +]; diff --git a/search/functions_6.html b/search/functions_6.html new file mode 100644 index 000000000..5fca897bd --- /dev/null +++ b/search/functions_6.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/functions_6.js b/search/functions_6.js new file mode 100644 index 000000000..f58a16705 --- /dev/null +++ b/search/functions_6.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['get',['Get',['../classo2_1_1monitoring_1_1MonitoringFactory.html#a9ce3c7abf17726e38e5353f1fde13945',1,'o2::monitoring::MonitoringFactory::Get()'],['../classo2_1_1monitoring_1_1MonLogger.html#aa011b0e25f80039fc9d1e26d04b1cd60',1,'o2::monitoring::MonLogger::Get()']]], + ['getbackend',['GetBackend',['../classo2_1_1monitoring_1_1MonitoringFactory.html#a10b465079b2994292205015ba4e98314',1,'o2::monitoring::MonitoringFactory']]], + ['getcurrenttimestamp',['getCurrentTimestamp',['../classo2_1_1monitoring_1_1Metric.html#a3d3908ef0ca8ad769395440af0b892bb',1,'o2::monitoring::Metric']]], + ['getfirstvalue',['getFirstValue',['../classo2_1_1monitoring_1_1Metric.html#a85e9c5ee11c64c4123eae91b4ca55a39',1,'o2::monitoring::Metric']]], + ['getfirstvaluetype',['getFirstValueType',['../classo2_1_1monitoring_1_1Metric.html#adf54092f4e8722615b165867f8afddde',1,'o2::monitoring::Metric']]], + ['gethostname',['getHostname',['../classo2_1_1monitoring_1_1ProcessDetails.html#a6e22e79867e10077e59c86e7ccc291e5',1,'o2::monitoring::ProcessDetails']]], + ['getinfluxdbv2',['getInfluxDbv2',['../namespaceo2_1_1monitoring.html#a22b5140ed5a3b091a687453c219befc4',1,'o2::monitoring']]], + ['getname',['getName',['../classo2_1_1monitoring_1_1Metric.html#a6975c4d70004b881258ef17c116c874f',1,'o2::monitoring::Metric']]], + ['getpid',['getPid',['../classo2_1_1monitoring_1_1ProcessDetails.html#a98a272bf070c0e46f7e4beca9ac02ba6',1,'o2::monitoring::ProcessDetails']]], + ['getprocessname',['getProcessName',['../classo2_1_1monitoring_1_1ProcessDetails.html#a8cdd3b7bcad6e695db26d177d44f7d6e',1,'o2::monitoring::ProcessDetails']]], + ['gettags',['getTags',['../classo2_1_1monitoring_1_1Metric.html#a148981e1c1dd787f1f8b4cbba9c19558',1,'o2::monitoring::Metric']]], + ['gettimestamp',['getTimestamp',['../classo2_1_1monitoring_1_1Metric.html#a7ac79817604203da55c2727f458392c7',1,'o2::monitoring::Metric']]], + ['getvalues',['getValues',['../classo2_1_1monitoring_1_1Metric.html#a6263c5769df042005548b449e65c8634',1,'o2::monitoring::Metric']]], + ['getvaluessize',['getValuesSize',['../classo2_1_1monitoring_1_1Metric.html#afcffda51253bf3586154c337d360c156',1,'o2::monitoring::Metric']]], + ['getverbosity',['getVerbosity',['../classo2_1_1monitoring_1_1Backend.html#ae34b9d32981f24f869b4944046789c0e',1,'o2::monitoring::Backend::getVerbosity()'],['../classo2_1_1monitoring_1_1Metric.html#ac5d1257c85b09e1f1dc60ab533da3d9e',1,'o2::monitoring::Metric::getVerbosity()']]] +]; diff --git a/search/functions_7.html b/search/functions_7.html new file mode 100644 index 000000000..02631a344 --- /dev/null +++ b/search/functions_7.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/functions_7.js b/search/functions_7.js new file mode 100644 index 000000000..274976ed6 --- /dev/null +++ b/search/functions_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['http',['HTTP',['../classo2_1_1monitoring_1_1transports_1_1HTTP.html#a3bfd3929898babadd8b90f80c2300da5',1,'o2::monitoring::transports::HTTP']]] +]; diff --git a/search/functions_8.html b/search/functions_8.html new file mode 100644 index 000000000..ff3709592 --- /dev/null +++ b/search/functions_8.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/functions_8.js b/search/functions_8.js new file mode 100644 index 000000000..b82584785 --- /dev/null +++ b/search/functions_8.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['influxdb',['InfluxDB',['../classo2_1_1monitoring_1_1backends_1_1InfluxDB.html#a9cabd71c97bd8cfac2507eeaa0924d2a',1,'o2::monitoring::backends::InfluxDB']]] +]; diff --git a/search/functions_9.html b/search/functions_9.html new file mode 100644 index 000000000..1d3458312 --- /dev/null +++ b/search/functions_9.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/functions_9.js b/search/functions_9.js new file mode 100644 index 000000000..a5ef6defe --- /dev/null +++ b/search/functions_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['kafka',['Kafka',['../classo2_1_1monitoring_1_1transports_1_1Kafka.html#a03901cc9636a21772dd51d258363947e',1,'o2::monitoring::transports::Kafka']]] +]; diff --git a/search/functions_a.html b/search/functions_a.html new file mode 100644 index 000000000..8eb5e5625 --- /dev/null +++ b/search/functions_a.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/functions_a.js b/search/functions_a.js new file mode 100644 index 000000000..907addb03 --- /dev/null +++ b/search/functions_a.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['main',['main',['../2-TaggedMetrics_8cxx.html#ae66f6b31b5ad750f1fe042a706a4e3d4',1,'2-TaggedMetrics.cxx']]], + ['metric',['Metric',['../classo2_1_1monitoring_1_1Metric.html#a870254fea4ff3bfcaef4fbb7c186f782',1,'o2::monitoring::Metric::Metric(int value, const std::string &name, Verbosity verbosity=Metric::DefaultVerbosity)'],['../classo2_1_1monitoring_1_1Metric.html#aabd1bc0072d5ae13e14715e2608c376e',1,'o2::monitoring::Metric::Metric(std::string value, const std::string &name, Verbosity verbosity=Metric::DefaultVerbosity)'],['../classo2_1_1monitoring_1_1Metric.html#a51519c6056128605714b40dc9bf351d0',1,'o2::monitoring::Metric::Metric(double value, const std::string &name, Verbosity verbosity=Metric::DefaultVerbosity)'],['../classo2_1_1monitoring_1_1Metric.html#ac8fedad90cd7254b562b7a34bc9ebb00',1,'o2::monitoring::Metric::Metric(uint64_t value, const std::string &name, Verbosity verbosity=Metric::DefaultVerbosity)'],['../classo2_1_1monitoring_1_1Metric.html#ae069928c65057166a361b7c3dcd175d3',1,'o2::monitoring::Metric::Metric(const std::string &name, Verbosity verbosity=Metric::DefaultVerbosity, const std::chrono::time_point< std::chrono::system_clock > &timestamp=Metric::getCurrentTimestamp())']]], + ['monitoring',['Monitoring',['../classo2_1_1monitoring_1_1Monitoring.html#a1d03167696a62ea65760f05719528ba8',1,'o2::monitoring::Monitoring::Monitoring(const Monitoring &)=delete'],['../classo2_1_1monitoring_1_1Monitoring.html#af60d643d981a73feac969dcc394ac6ef',1,'o2::monitoring::Monitoring::Monitoring()']]] +]; diff --git a/search/functions_b.html b/search/functions_b.html new file mode 100644 index 000000000..fa9cff56e --- /dev/null +++ b/search/functions_b.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/functions_b.js b/search/functions_b.js new file mode 100644 index 000000000..509eb6a04 --- /dev/null +++ b/search/functions_b.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['noop',['Noop',['../classo2_1_1monitoring_1_1backends_1_1Noop.html#aab063b0e0bdf16ee53a972ed7f5a3516',1,'o2::monitoring::backends::Noop']]] +]; diff --git a/search/functions_c.html b/search/functions_c.html new file mode 100644 index 000000000..fce7a6b12 --- /dev/null +++ b/search/functions_c.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/functions_c.js b/search/functions_c.js new file mode 100644 index 000000000..cbc8ffe50 --- /dev/null +++ b/search/functions_c.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['operator_28_29',['operator()',['../classo2_1_1monitoring_1_1VariantVisitorAdd.html#a5ec9991b6db0e9c3763a33284dc132ad',1,'o2::monitoring::VariantVisitorAdd::operator()(const T &a, const T &b) const '],['../classo2_1_1monitoring_1_1VariantVisitorAdd.html#aaee2df6b3a3cd51d634fdc40cdae70c2',1,'o2::monitoring::VariantVisitorAdd::operator()(const T &, const U &) const '],['../classo2_1_1monitoring_1_1VariantVisitorRate.html#a761ef6eb471299a8c772bce9e7ab44bb',1,'o2::monitoring::VariantVisitorRate::operator()(const T &a, const T &b) const '],['../classo2_1_1monitoring_1_1VariantVisitorRate.html#a9a1258d6ceb8a8b1a5530b2ea534ed8b',1,'o2::monitoring::VariantVisitorRate::operator()(const T &, const U &) const ']]], + ['operator_3c_3c',['operator<<',['../classo2_1_1monitoring_1_1MonLogger.html#a248af7f99d2d663ed38cff9e6900f553',1,'o2::monitoring::MonLogger::operator<<()'],['../classo2_1_1monitoring_1_1transports_1_1StdOut.html#ac418ec1dbb3aab4180af7504e8adbe81',1,'o2::monitoring::transports::StdOut::operator<<()']]], + ['operator_3d',['operator=',['../classo2_1_1monitoring_1_1Monitoring.html#ad2c62aa9bca85c77fa19a5b933db2f5c',1,'o2::monitoring::Monitoring::operator=()'],['../classo2_1_1monitoring_1_1MonitoringFactory.html#aacadbff97348138dd042eec39b058a9f',1,'o2::monitoring::MonitoringFactory::operator=()']]], + ['overwriteverbosity',['overwriteVerbosity',['../classo2_1_1monitoring_1_1Metric.html#a0535e5ab38995e7f2433f3a08ff45e9c',1,'o2::monitoring::Metric']]] +]; diff --git a/search/functions_d.html b/search/functions_d.html new file mode 100644 index 000000000..82b2b0cf8 --- /dev/null +++ b/search/functions_d.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/functions_d.js b/search/functions_d.js new file mode 100644 index 000000000..f38eeb7c7 --- /dev/null +++ b/search/functions_d.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['process',['process',['../classo2_1_1monitoring_1_1DerivedMetrics.html#aa3133c5f7c3855a98d1c4e78a0b763f5',1,'o2::monitoring::DerivedMetrics']]], + ['processdetails',['ProcessDetails',['../classo2_1_1monitoring_1_1ProcessDetails.html#a49de7dfd0da3566fcc4555e328bb3e78',1,'o2::monitoring::ProcessDetails']]], + ['processmonitor',['ProcessMonitor',['../classo2_1_1monitoring_1_1ProcessMonitor.html#ad499bd2d59f2c86fc53f927f08122460',1,'o2::monitoring::ProcessMonitor']]] +]; diff --git a/search/functions_e.html b/search/functions_e.html new file mode 100644 index 000000000..557ae9a44 --- /dev/null +++ b/search/functions_e.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/functions_e.js b/search/functions_e.js new file mode 100644 index 000000000..55451c3e2 --- /dev/null +++ b/search/functions_e.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['send',['send',['../classo2_1_1monitoring_1_1Backend.html#ad84d28199d142ff3030f6b2c7e785485',1,'o2::monitoring::Backend::send(const Metric &metric)=0'],['../classo2_1_1monitoring_1_1Backend.html#adfbe8f3a11dcdc9feabb03ad95f26c57',1,'o2::monitoring::Backend::send(std::vector< Metric > &&metrics)=0'],['../classo2_1_1monitoring_1_1Monitoring.html#a5419ff3a2a8a28a319b7152b6790c202',1,'o2::monitoring::Monitoring::send()'],['../classo2_1_1monitoring_1_1backends_1_1ApMonBackend.html#a0af4c4214f6487e58e897278a679aeb6',1,'o2::monitoring::backends::ApMonBackend::send(std::vector< Metric > &&metrics) override'],['../classo2_1_1monitoring_1_1backends_1_1ApMonBackend.html#a218fd93ee7cb6e2f8d4aebfd29666b94',1,'o2::monitoring::backends::ApMonBackend::send(const Metric &metric) override'],['../classo2_1_1monitoring_1_1backends_1_1InfluxDB.html#a9432f9b05962004d66673e56703b9586',1,'o2::monitoring::backends::InfluxDB::send(const Metric &metric) override'],['../classo2_1_1monitoring_1_1backends_1_1InfluxDB.html#ae2554d7e3467c666be33615a20ad27d4',1,'o2::monitoring::backends::InfluxDB::send(std::vector< Metric > &&metrics) override'],['../classo2_1_1monitoring_1_1backends_1_1Noop.html#ab8bb7e9d907132f287867b966f204ba6',1,'o2::monitoring::backends::Noop::send(std::vector< Metric > &&) final'],['../classo2_1_1monitoring_1_1backends_1_1Noop.html#ac8d52cee6f868bff5c028f4360903699',1,'o2::monitoring::backends::Noop::send(const Metric &) final'],['../classo2_1_1monitoring_1_1backends_1_1StdOut.html#ac25e9b11cadb4019eab635adb9aef9e3',1,'o2::monitoring::backends::StdOut::send(const Metric &metric) override'],['../classo2_1_1monitoring_1_1backends_1_1StdOut.html#a33714a6bf6b379b9e619ff59d93e70fe',1,'o2::monitoring::backends::StdOut::send(std::vector< Metric > &&metrics) override'],['../classo2_1_1monitoring_1_1transports_1_1HTTP.html#a69caf6b35e7a8f27bef92b513674fc40',1,'o2::monitoring::transports::HTTP::send()'],['../classo2_1_1monitoring_1_1transports_1_1Kafka.html#aa7df39f3e99c91d4259796a38102696d',1,'o2::monitoring::transports::Kafka::send()'],['../classo2_1_1monitoring_1_1transports_1_1StdOut.html#a78957bd9f1a409b565ad14bb0657dfd5',1,'o2::monitoring::transports::StdOut::send()'],['../classo2_1_1monitoring_1_1transports_1_1TCP.html#a1ebb22e3478af54d51a285d4b171b62b',1,'o2::monitoring::transports::TCP::send()'],['../classo2_1_1monitoring_1_1transports_1_1TransportInterface.html#a157d291d9b965e4c224a0232228ecb27',1,'o2::monitoring::transports::TransportInterface::send()'],['../classo2_1_1monitoring_1_1transports_1_1UDP.html#a98abbd5b00501dd472cfeef9d0b91eaa',1,'o2::monitoring::transports::UDP::send()'],['../classo2_1_1monitoring_1_1transports_1_1Unix.html#a405790a04f260e815253a6e921d22af1',1,'o2::monitoring::transports::Unix::send()']]], + ['setdefaultverbosity',['setDefaultVerbosity',['../classo2_1_1monitoring_1_1Metric.html#a47403b0a42664988fd00e672f9b2c68b',1,'o2::monitoring::Metric']]], + ['settags',['setTags',['../classo2_1_1monitoring_1_1Metric.html#aa0f834f2aaa1966cc1c03d0f0ffcdc58',1,'o2::monitoring::Metric']]], + ['setverbosisty',['setVerbosisty',['../classo2_1_1monitoring_1_1Backend.html#ae6c6dd18c638c10a608c572c37f44140',1,'o2::monitoring::Backend']]], + ['setverbositypolicy',['setVerbosityPolicy',['../classo2_1_1monitoring_1_1Metric.html#a3fc03fd295c775b55515d0b7be52a0db',1,'o2::monitoring::Metric']]], + ['stdout',['StdOut',['../classo2_1_1monitoring_1_1backends_1_1StdOut.html#ab520c63cbcd17b43546eb2537e1bab4d',1,'o2::monitoring::backends::StdOut::StdOut()'],['../classo2_1_1monitoring_1_1transports_1_1StdOut.html#ad7323a5152d639c529d22151818a7843',1,'o2::monitoring::transports::StdOut::StdOut()']]] +]; diff --git a/search/functions_f.html b/search/functions_f.html new file mode 100644 index 000000000..b27fb7d15 --- /dev/null +++ b/search/functions_f.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/functions_f.js b/search/functions_f.js new file mode 100644 index 000000000..73de22363 --- /dev/null +++ b/search/functions_f.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['tcp',['TCP',['../classo2_1_1monitoring_1_1transports_1_1TCP.html#a9b84231848d8e53a144b4441f0ceb51b',1,'o2::monitoring::transports::TCP']]], + ['toinfluxlineprotocol',['toInfluxLineProtocol',['../classo2_1_1monitoring_1_1backends_1_1InfluxDB.html#aa074417f8c1d876548bf62c4220c0fea',1,'o2::monitoring::backends::InfluxDB']]] +]; diff --git a/search/mag_sel.png b/search/mag_sel.png new file mode 100644 index 000000000..81f6040a2 Binary files /dev/null and b/search/mag_sel.png differ diff --git a/search/namespaces_0.html b/search/namespaces_0.html new file mode 100644 index 000000000..f1b59ecc3 --- /dev/null +++ b/search/namespaces_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/namespaces_0.js b/search/namespaces_0.js new file mode 100644 index 000000000..213fc29e3 --- /dev/null +++ b/search/namespaces_0.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['backends',['backends',['../namespaceo2_1_1monitoring_1_1backends.html',1,'o2::monitoring']]], + ['monitoring',['monitoring',['../namespaceo2_1_1monitoring.html',1,'o2']]], + ['transports',['transports',['../namespaceo2_1_1monitoring_1_1transports.html',1,'o2::monitoring']]] +]; diff --git a/search/nomatches.html b/search/nomatches.html new file mode 100644 index 000000000..b1ded27e9 --- /dev/null +++ b/search/nomatches.html @@ -0,0 +1,12 @@ + + + + + + + +
+
No Matches
+
+ + diff --git a/search/pages_0.html b/search/pages_0.html new file mode 100644 index 000000000..0db7267ba --- /dev/null +++ b/search/pages_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/pages_0.js b/search/pages_0.js new file mode 100644 index 000000000..362018dd4 --- /dev/null +++ b/search/pages_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['instructions_20for_20dpl_20users',['Instructions for DPL users',['../md_DPL.html',1,'']]] +]; diff --git a/search/pages_1.html b/search/pages_1.html new file mode 100644 index 000000000..2c67a8ef8 --- /dev/null +++ b/search/pages_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/pages_1.js b/search/pages_1.js new file mode 100644 index 000000000..3e9704107 --- /dev/null +++ b/search/pages_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['monitoring',['Monitoring',['../index.html',1,'']]] +]; diff --git a/search/related_0.html b/search/related_0.html new file mode 100644 index 000000000..e40ed4285 --- /dev/null +++ b/search/related_0.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/related_0.js b/search/related_0.js new file mode 100644 index 000000000..5bdf4eb04 --- /dev/null +++ b/search/related_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['derivedmetrics',['DerivedMetrics',['../classo2_1_1monitoring_1_1Metric.html#a69478638779e98ab46e31ae42219c0cc',1,'o2::monitoring::Metric']]] +]; diff --git a/search/search.css b/search/search.css new file mode 100644 index 000000000..4d7612ff6 --- /dev/null +++ b/search/search.css @@ -0,0 +1,271 @@ +/*---------------- Search Box */ + +#FSearchBox { + float: left; +} + +#MSearchBox { + white-space : nowrap; + position: absolute; + float: none; + display: inline; + margin-top: 8px; + right: 0px; + width: 170px; + z-index: 102; + background-color: white; +} + +#MSearchBox .left +{ + display:block; + position:absolute; + left:10px; + width:20px; + height:19px; + background:url('search_l.png') no-repeat; + background-position:right; +} + +#MSearchSelect { + display:block; + position:absolute; + width:20px; + height:19px; +} + +.left #MSearchSelect { + left:4px; +} + +.right #MSearchSelect { + right:5px; +} + +#MSearchField { + display:block; + position:absolute; + height:19px; + background:url('search_m.png') repeat-x; + border:none; + width:111px; + margin-left:20px; + padding-left:4px; + color: #909090; + outline: none; + font: 9pt Arial, Verdana, sans-serif; +} + +#FSearchBox #MSearchField { + margin-left:15px; +} + +#MSearchBox .right { + display:block; + position:absolute; + right:10px; + top:0px; + width:20px; + height:19px; + background:url('search_r.png') no-repeat; + background-position:left; +} + +#MSearchClose { + display: none; + position: absolute; + top: 4px; + background : none; + border: none; + margin: 0px 4px 0px 0px; + padding: 0px 0px; + outline: none; +} + +.left #MSearchClose { + left: 6px; +} + +.right #MSearchClose { + right: 2px; +} + +.MSearchBoxActive #MSearchField { + color: #000000; +} + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #90A5CE; + background-color: #F9FAFC; + z-index: 1; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt Arial, Verdana, sans-serif; + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: monospace; + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: #000000; + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: #000000; + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: #FFFFFF; + background-color: #3D578C; + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + width: 60ex; + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #000; + background-color: #EEF1F7; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; + padding-bottom: 15px; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +body.SRPage { + margin: 5px 2px; +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; +} + +.SRResult { + display: none; +} + +DIV.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.searchresult { + background-color: #F0F3F8; +} + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: url("../tab_a.png"); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/search/search.js b/search/search.js new file mode 100644 index 000000000..dedce3bf0 --- /dev/null +++ b/search/search.js @@ -0,0 +1,791 @@ +function convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair + { + idxChar = searchValue.substr(0, 2); + } + + var resultsPage; + var resultsPageWithSearch; + var hasResultsPage; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html'; + resultsPageWithSearch = resultsPage+'?'+escape(searchValue); + hasResultsPage = true; + } + else // nothing available for this search term + { + resultsPage = this.resultsPath + '/nomatches.html'; + resultsPageWithSearch = resultsPage; + hasResultsPage = false; + } + + window.frames.MSearchResults.location = resultsPageWithSearch; + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + + if (domPopupSearchResultsWindow.style.display!='block') + { + var domSearchBox = this.DOMSearchBox(); + this.DOMSearchClose().style.display = 'inline'; + if (this.insideFrame) + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + domPopupSearchResultsWindow.style.position = 'relative'; + domPopupSearchResultsWindow.style.display = 'block'; + var width = document.body.clientWidth - 8; // the -8 is for IE :-( + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResults.style.width = width + 'px'; + } + else + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; + var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + } + } + + this.lastSearchValue = searchValue; + this.lastResultsPage = resultsPage; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + + var searchField = this.DOMSearchField(); + + if (searchField.value == this.searchLabel) // clear "Search" term upon entry + { + searchField.value = ''; + this.searchActive = true; + } + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.DOMSearchField().value = this.searchLabel; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName == 'DIV' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName == 'DIV' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + parent.document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults() +{ + var results = document.getElementById("SRResults"); + for (var e=0; e + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/variables_0.js b/search/variables_0.js new file mode 100644 index 000000000..851494808 --- /dev/null +++ b/search/variables_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['defaultverbosity',['DefaultVerbosity',['../classo2_1_1monitoring_1_1Metric.html#ae8bab1993bbc7032566bea4ceee935ae',1,'o2::monitoring::Metric']]] +]; diff --git a/search/variables_1.html b/search/variables_1.html new file mode 100644 index 000000000..3c65cf264 --- /dev/null +++ b/search/variables_1.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/variables_1.js b/search/variables_1.js new file mode 100644 index 000000000..e442ea91c --- /dev/null +++ b/search/variables_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['includetimestamp',['includeTimestamp',['../classo2_1_1monitoring_1_1Metric.html#aea83b5c7c4365d2e686a1c314c267bac',1,'o2::monitoring::Metric']]] +]; diff --git a/search/variables_2.html b/search/variables_2.html new file mode 100644 index 000000000..7b43e0ac7 --- /dev/null +++ b/search/variables_2.html @@ -0,0 +1,26 @@ + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/variables_2.js b/search/variables_2.js new file mode 100644 index 000000000..018dbc07d --- /dev/null +++ b/search/variables_2.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['mdefaultvaluename',['mDefaultValueName',['../classo2_1_1monitoring_1_1Metric.html#a94a576a3682538822b4af019a23041f6',1,'o2::monitoring::Metric']]], + ['mname',['mName',['../classo2_1_1monitoring_1_1Metric.html#a2f7c68b3bc3fae9639a7617d2b4217c9',1,'o2::monitoring::Metric']]], + ['mregexpolicy',['mRegexPolicy',['../classo2_1_1monitoring_1_1Metric.html#a14e25c89f72ed3647e6365505efdde74',1,'o2::monitoring::Metric']]], + ['mstorage',['mStorage',['../classo2_1_1monitoring_1_1DerivedMetrics.html#ab45ed6358a28e8455824704e1919ef48',1,'o2::monitoring::DerivedMetrics']]], + ['mtags',['mTags',['../classo2_1_1monitoring_1_1Metric.html#ad0b2da7138e43df7e8a1abf3fc94e4aa',1,'o2::monitoring::Metric']]], + ['mtimestamp',['mTimestamp',['../classo2_1_1monitoring_1_1Metric.html#a9cca99dc167febd6977c8eb2600913cc',1,'o2::monitoring::Metric']]], + ['mvalues',['mValues',['../classo2_1_1monitoring_1_1Metric.html#a22a0420126bab818dc7951c5e1c47c65',1,'o2::monitoring::Metric']]], + ['mverbosity',['mVerbosity',['../classo2_1_1monitoring_1_1Metric.html#a33a7d10de02570105a0a9976a7886744',1,'o2::monitoring::Metric']]] +]; diff --git a/splitbar.png b/splitbar.png new file mode 100644 index 000000000..fe895f2c5 Binary files /dev/null and b/splitbar.png differ diff --git a/src/Backends/ApMonBackend.cxx b/src/Backends/ApMonBackend.cxx deleted file mode 100644 index 80875f48f..000000000 --- a/src/Backends/ApMonBackend.cxx +++ /dev/null @@ -1,130 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -/// -/// \file ApMonBackend.cxx -/// \author Adam Wegrzynek -/// - -#include "ApMonBackend.h" -#include -#include -#include "../MonLogger.h" -#include "../Exceptions/MonitoringException.h" - -namespace o2 -{ -/// ALICE O2 Monitoring system -namespace monitoring -{ -/// Monitoring backends -namespace backends -{ - -template -struct overloaded : Ts... { - using Ts::operator()...; -}; -template -overloaded(Ts...)->overloaded; - -ApMonBackend::ApMonBackend(const std::string& path) -{ - try { - mApMon = std::make_unique(const_cast(path.c_str())); - MonLogger::Get(Severity::Info) << "ApMon backend initialized" << MonLogger::End(); - } catch (std::runtime_error& e) { - throw MonitoringException("ApMonBackend initialization", std::string(e.what())); - } -} - -inline int ApMonBackend::convertTimestamp(const std::chrono::time_point& timestamp) -{ - return static_cast(std::chrono::system_clock::to_time_t(timestamp)); -} - -void ApMonBackend::addGlobalTag(std::string_view /*name*/, std::string_view value) -{ - if (!mEntity.empty()) { - mEntity += ","; - } - mEntity += value; -} - -void ApMonBackend::send(const Metric& metric) -{ - std::string name = metric.getName(); - std::string entity = mEntity; - for (const auto& [key, value] : metric.getTags()) { - entity += ','; - entity += tags::TAG_KEY[key]; - entity += '='; - (value > 0) ? entity += tags::GetValue(value) : entity += std::to_string(0 - value); - } - if (mRunNumber != 0) entity += (",run=" + std::to_string(mRunNumber)); - - int valueSize = metric.getValuesSize(); - char **paramNames, **paramValues; - int* valueTypes; - paramNames = (char**)std::malloc(valueSize * sizeof(char*)); - paramValues = (char**)std::malloc(valueSize * sizeof(char*)); - valueTypes = (int*)std::malloc(valueSize * sizeof(int)); - // the scope of values must be the same as sendTimedParameters method - int intValue; - double doubleValue; - std::string stringValue; - - auto& values = metric.getValues(); - - for (int i = 0; i < valueSize; i++) { - paramNames[i] = const_cast(values[i].first.c_str()); - std::visit(overloaded{ - [&](int value) { - valueTypes[i] = XDR_INT32; - intValue = value; - paramValues[i] = reinterpret_cast(&intValue); - }, - [&](double value) { - valueTypes[i] = XDR_REAL64; - doubleValue = value; - paramValues[i] = reinterpret_cast(&doubleValue); - }, - [&](const std::string& value) { - valueTypes[i] = XDR_STRING; - stringValue = value; - paramValues[i] = const_cast(stringValue.c_str()); - }, - [&](uint64_t value) { - valueTypes[i] = XDR_REAL64; - doubleValue = static_cast(value); - paramValues[i] = reinterpret_cast(&doubleValue); - }, - }, values[i].second); - } - - mApMon->sendTimedParameters(const_cast(name.c_str()), const_cast(entity.c_str()), - valueSize, paramNames, valueTypes, paramValues, convertTimestamp(metric.getTimestamp())); - - std::free(paramNames); - std::free(paramValues); - std::free(valueTypes); -} - -void ApMonBackend::send(std::vector&& metrics) -{ - for (auto& metric : metrics) { - send(metric); - } -} - -} // namespace backends -} // namespace monitoring -} // namespace o2 diff --git a/src/Backends/ApMonBackend.h b/src/Backends/ApMonBackend.h deleted file mode 100644 index 95a0f3566..000000000 --- a/src/Backends/ApMonBackend.h +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -/// -/// \file ApMonBackend.h -/// \author Adam Wegrzynek -/// - -#ifndef ALICEO2_MONITORING_BACKENDS_APMONBACKEND_H -#define ALICEO2_MONITORING_BACKENDS_APMONBACKEND_H - -#include "Monitoring/Backend.h" -#include -#include -#include -#include - -namespace o2 -{ -/// ALICE O2 Monitoring system -namespace monitoring -{ -/// Monitoring backends -namespace backends -{ - -/// \brief Backend that uses AppMon (MonALISA) -/// -/// Uses ApMonBackend library to push metric to MonALISA Service. -/// ApMonBackend accepts timestamps as integers, therefore a cast is needed. -/// -/// \author Adam Wegrzynek -class ApMonBackend final : public Backend -{ - public: - /// Constructs AppMon backend - /// \param path filepath to ApMonBackend configuration file - ApMonBackend(const std::string& path); - - /// Default destructor - ~ApMonBackend() = default; - - /// Sends multiple metrics not related to each other - /// \@param metrics vector of metrics - void send(std::vector&& metrics) override; - - /// Sends metric via MonALISA - /// ApMonBackend's intances is type-aware therefore cast of metric value is needed - /// \param metric reference to metric object: - void send(const Metric& metric) override; - - /// Extends entity value - /// \param name tag name (unused) - /// \param value tag value that is concatenated to entity string - void addGlobalTag(std::string_view name, std::string_view value) override; - - private: - /// Converts timestamp to format supported by ApMonBackend - /// \param timestamp timestamp in std::chrono::time_point format - /// \return timestamp as integer (milliseconds from epoch) - int convertTimestamp(const std::chrono::time_point& timestamp); - - std::unique_ptr mApMon; ///< ApMon object - std::string mEntity; ///< MonALISA entity, created out of global tags -}; - -} // namespace backends -} // namespace monitoring -} // namespace o2 - -#endif // ALICEO2_MONITORING_BACKENDS_APMONBACKEND_H diff --git a/src/Backends/InfluxDB.cxx b/src/Backends/InfluxDB.cxx deleted file mode 100644 index 70ed84c44..000000000 --- a/src/Backends/InfluxDB.cxx +++ /dev/null @@ -1,140 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -/// -/// \file InfluxDB.cxx -/// \author Adam Wegrzynek -/// - -#include "InfluxDB.h" -#include -#include -#include -#include -#include "../Exceptions/MonitoringException.h" - -namespace o2 -{ -/// ALICE O2 Monitoring system -namespace monitoring -{ -/// Monitoring backends -namespace backends -{ - -template -struct overloaded : Ts... { - using Ts::operator()...; -}; -template -overloaded(Ts...)->overloaded; - -InfluxDB::InfluxDB(std::unique_ptr transport) - : mTransport(std::move(transport)) -{ - MonLogger::Get(Severity::Info) << "InfluxDB backend initialized" << MonLogger::End(); -} - -inline unsigned long InfluxDB::convertTimestamp(const std::chrono::time_point& timestamp) -{ - return std::chrono::duration_cast( - timestamp.time_since_epoch()) - .count(); -} - -void InfluxDB::escape(std::string& escaped) -{ - boost::replace_all(escaped, ",", "\\,"); - boost::replace_all(escaped, "=", "\\="); - boost::replace_all(escaped, " ", "\\ "); - if (escaped.empty()) { - escaped = R"("")"; - } -} - -void InfluxDB::send(std::vector&& metrics) -{ - std::string influxMetrics = ""; - for (const auto& metric : metrics) { - influxMetrics += toInfluxLineProtocol(metric); - influxMetrics += "\n"; - } - //remove last \n - if (influxMetrics.size() > 0) influxMetrics.pop_back(); - - mTransport->send(std::move(influxMetrics)); -} - -void InfluxDB::setRunNumber(uint32_t runNumber) { - mRunNumber = runNumber; - mTransport->setKey(std::to_string(runNumber)); -} - -void InfluxDB::send(const Metric& metric) -{ - mTransport->send(toInfluxLineProtocol(metric)); -} - -void InfluxDB::sendWithRun(const Metric& metric, const std::string& envId, const std::string& run) -{ - auto serialized = toInfluxLineProtocol(metric); - serialized.insert(serialized.find(' ') , ",run=" + run + ",envId=" + envId); - mTransport->send(std::move(serialized)); -} - -std::string InfluxDB::toInfluxLineProtocol(const Metric& metric) -{ - std::stringstream convert; - std::string name = metric.getName(); - escape(name); - convert << name; - if (!tagSet.empty()) { - convert << "," << tagSet; - } - - for (const auto& [key, value] : metric.getTags()) { - convert << "," << tags::TAG_KEY[key] << "="; - (value > 0) ? convert << tags::GetValue(value) : convert << (0 - value); - } - if (mRunNumber != 0) convert << ",run=" << mRunNumber; - convert << ' '; - for (const auto& [name, value] : metric.getValues()) { - convert << name << '='; - std::visit(overloaded{ - [&convert](uint64_t value) { convert << value << 'i'; }, - [&convert](int value) { convert << value << 'i'; }, - [&convert](double value) { convert << value; }, - [&convert](const std::string& value) { convert << '"' << value << '"'; }, - }, - value); - convert << ','; - } - convert.seekp(-1, std::ios_base::end); - if (Metric::includeTimestamp) { - convert << " " << convertTimestamp(metric.getTimestamp()); - } - return convert.str(); -} - -void InfluxDB::addGlobalTag(std::string_view name, std::string_view value) -{ - std::string sName = name.data(); - std::string sValue = value.data(); - escape(sName); - escape(sValue); - if (!tagSet.empty()) - tagSet += ","; - tagSet += sName + "=" + sValue; -} - -} // namespace backends -} // namespace monitoring -} // namespace o2 diff --git a/src/Backends/InfluxDB.h b/src/Backends/InfluxDB.h deleted file mode 100644 index 5ea5cde4f..000000000 --- a/src/Backends/InfluxDB.h +++ /dev/null @@ -1,92 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -/// -/// \file InfluxDB.h -/// \author Adam Wegrzynek -/// - -#ifndef ALICEO2_MONITORING_BACKENDS_INFLUXDB_H -#define ALICEO2_MONITORING_BACKENDS_INFLUXDB_H - -#include "Monitoring/Backend.h" -#include "../Transports/TransportInterface.h" -#include "../MonLogger.h" -#include -#include - -namespace o2 -{ -/// ALICE O2 Monitoring system -namespace monitoring -{ -/// Monitoring backends -namespace backends -{ - -/// \brief Backend that sends metrics to InfluxDB time-series databse -/// -/// Metrics are converted into Influx Line protocol and then sent via one of available transports -class InfluxDB final : public Backend -{ - public: - /// Constuctor - /// \param transport Any available transport (udp, unix, kafka) - InfluxDB(std::unique_ptr transport); - - /// Default destructor - ~InfluxDB() = default; - - /// Convert timestamp to unsigned long as required by InfluxDB - /// \param timestamp chrono time_point timestamp - /// \return timestamp in nanoseconds - inline unsigned long convertTimestamp(const std::chrono::time_point& timestamp); - - /// Reimplements setting run number and some transport needs to be notified about that as well - /// \param runNumber run number to be set - virtual void setRunNumber(uint32_t runNumber) override; - - /// Sends metric to InfluxDB instance via one transport - /// \param metric reference to metric object - void send(const Metric& metric) override; - - /// Sends metric with run tag - /// \param metric reference to metric object - /// \param id ID tag value - void sendWithRun(const Metric& metric, const std::string& envId, const std::string& run); - - /// Sends multiple metrics not related to each other - /// \@param metrics vector of metrics - void send(std::vector&& metrics) override; - - /// Adds tag - /// \param name tag name - /// \param value tag value - void addGlobalTag(std::string_view name, std::string_view value) override; - - /// Converts metric to Influx Line Protocol format - /// \param metric - std::string toInfluxLineProtocol(const Metric& metric); - - private: - std::unique_ptr mTransport; ///< InfluxDB transport - std::string tagSet; ///< Global tagset (common for each metric) - - /// Escapes " ", "," and "=" characters - /// \param escaped string rerference to escape characters from - void escape(std::string& escaped); -}; - -} // namespace backends -} // namespace monitoring -} // namespace o2 - -#endif // ALICEO2_MONITORING_BACKENDS_INFLUXDB_H diff --git a/src/Backends/Noop.h b/src/Backends/Noop.h deleted file mode 100644 index c241e41f3..000000000 --- a/src/Backends/Noop.h +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -/// -/// \file Noop.h -/// \author Adam Wegrzynek -/// - -#ifndef ALICEO2_MONITORING_BACKENDS_NOOP_H -#define ALICEO2_MONITORING_BACKENDS_NOOP_H - -#include "Monitoring/Backend.h" - -namespace o2 -{ -/// ALICE O2 Monitoring system -namespace monitoring -{ -/// Monitoring backends -namespace backends -{ - -/// \brief No-op backend -/// -/// \author Adam Wegrzynek -class Noop final : public Backend -{ - public: - /// Constructs backend - Noop() = default; - - /// Default destructor - ~Noop() = default; - - /// \@param metrics vector of metrics - void send(std::vector&& /*metrics*/) final {} - - /// \param metric reference to metric object: - void send(const Metric& /*metric*/) final {} - - /// \param name tag name - /// \param value tag value that is concatenated to entity string - void addGlobalTag(std::string_view /*name*/, std::string_view /*value*/) final {} -}; - -} // namespace backends -} // namespace monitoring -} // namespace o2 - -#endif // ALICEO2_MONITORING_BACKENDS_NOOP_H diff --git a/src/Backends/StdOut.cxx b/src/Backends/StdOut.cxx deleted file mode 100644 index 2e7cdb680..000000000 --- a/src/Backends/StdOut.cxx +++ /dev/null @@ -1,94 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -/// -/// \file StdOut.cxx -/// \author Adam Wegrzynek -/// - -#include "StdOut.h" -#include "../MonLogger.h" -#include - -namespace o2 -{ -/// ALICE O2 Monitoring system -namespace monitoring -{ -/// Monitoring backends -namespace backends -{ - -template -struct overloaded : Ts... { - using Ts::operator()...; -}; -template -overloaded(Ts...)->overloaded; - -inline unsigned long StdOut::convertTimestamp(const std::chrono::time_point& timestamp) -{ - return std::chrono::duration_cast( - timestamp.time_since_epoch()) - .count(); -} - -StdOut::StdOut(const std::string& prefix) : mPrefix(prefix) -{ - setVerbosity(Verbosity::Debug); -} - -void StdOut::addGlobalTag(std::string_view name, std::string_view value) -{ - std::string tag = name.data(); - tag += "="; - tag += value; - if (!tagString.empty()) - tagString += ","; - tagString += tag; -} - -void StdOut::send(std::vector&& metrics) -{ - for (auto& m : metrics) { - send(m); - } -} - -void StdOut::send(const Metric& metric) -{ - std::ostringstream convert; - convert << "[" << mPrefix << "] " << metric.getName(); - for (auto& value : metric.getValues()) { - auto stringValue = std::visit(overloaded{ - [](const std::string& value) -> std::string { return value; }, - [](auto value) -> std::string { return std::to_string(value); } - }, value.second); - if (metric.getValuesSize() == 1) { - convert << ',' << metric.getFirstValueType() << ' ' << stringValue; - } else { - convert << ' ' << value.first << '=' << stringValue; - } - } - convert << ' ' << convertTimestamp(metric.getTimestamp()) << ' ' << tagString; - - for (const auto& [key, value] : metric.getTags()) { - convert << ',' << tags::TAG_KEY[key] << "="; - (value > 0) ? convert << tags::GetValue(value) : convert << (0 - value); - } - if (mRunNumber != 0) convert << ",run=" << mRunNumber; - convert << '\n'; - std::cout << convert.str(); -} - -} // namespace backends -} // namespace monitoring -} // namespace o2 diff --git a/src/Backends/StdOut.h b/src/Backends/StdOut.h deleted file mode 100644 index bff267c08..000000000 --- a/src/Backends/StdOut.h +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -/// -/// \file StdOut.h -/// \author Adam Wegrzynek -/// - -#ifndef ALICEO2_MONITORING_BACKEND_STDOUT_H -#define ALICEO2_MONITORING_BACKEND_STDOUT_H - -#include "Monitoring/Backend.h" -#include -#include - -namespace o2 -{ -/// ALICE O2 Monitoring system -namespace monitoring -{ -/// Monitoring backends -namespace backends -{ - -/// \brief Prints metrics to standard output via std::cout -class StdOut final : public Backend -{ - public: - /// Default constructor - StdOut(const std::string& prefix = "METRIC"); - - /// Default destructor - ~StdOut() = default; - - /// Prints metric - /// \param metric reference to metric object - void send(const Metric& metric) override; - - /// Prints vector of metrics - /// \@param metrics vector of metrics - void send(std::vector&& metrics) override; - - /// Adds tag - /// \param name tag name - /// \param value tag value - void addGlobalTag(std::string_view name, std::string_view value) override; - - private: - /// Converts timestamp to unsigned long (miliseconds from epoch) - /// \param timestamp timestamp in std::chrono::time_point format - /// \return timestamp as unsigned long (miliseconds from epoch) - unsigned long convertTimestamp(const std::chrono::time_point& timestamp); - - std::string tagString; ///< Global tagset (common for each metric) - const std::string mPrefix; ///< Metric prefix -}; - -} // namespace backends -} // namespace monitoring -} // namespace o2 - -#endif // ALICEO2_MONITORING_BACKEND_STDOUT_H diff --git a/src/DerivedMetrics.cxx b/src/DerivedMetrics.cxx deleted file mode 100644 index de6338864..000000000 --- a/src/DerivedMetrics.cxx +++ /dev/null @@ -1,141 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -/// -/// \file DerivedMetrics.cxx -/// \author Adam Wegrzynek -/// -#include "Monitoring/DerivedMetrics.h" -#include "Exceptions/MonitoringException.h" -#include -#include -#include -#include -#include -#include -#include "VariantVisitorAdd.h" -#include "VariantVisitorRate.h" - -template -struct overloaded : Ts... { - using Ts::operator()...; -}; -template -overloaded(Ts...)->overloaded; - -namespace o2 -{ -/// ALICE O2 Monitoring system -namespace monitoring -{ - -bool DerivedMetrics::process(Metric& metric, DerivedMetricMode mode) -{ - const std::map> map = { - {DerivedMetricMode::INCREMENT, [this](Metric& metric) { - auto tags = metric.getTags(); - std::string key = metric.getName(); - std::for_each(tags.begin(), tags.end(), [&key](auto const& pair) { - key += pair.second; - }); - auto search = mStorage.find(key); - if (search != mStorage.end()) { - auto currentValue = metric.getFirstValue().second; - auto storedValue = search->second.getValues().back().second; - auto value = std::visit(VariantVisitorAdd{}, currentValue, storedValue); - mStorage.erase(search); - metric.addValue(value, metric.getFirstValue().first + "_increment"); - } else { - metric.addValue(metric.getFirstValue().second, metric.getFirstValue().first + "_increment"); - } - mStorage.insert(std::make_pair(key, metric)); - return true; - }}, - {DerivedMetricMode::RATE, [this](Metric& metric) { - /// create pseudo unique key - auto tags = metric.getTags(); - std::string key = metric.getName(); - std::for_each(tags.begin(), tags.end(), [&key](auto const& pair) { - key += pair.second; - }); - - // search for previous value - auto search = mStorage.find(key); - if (search == mStorage.end()) { - mStorage.insert(std::make_pair(key, metric)); - metric.addValue((double)0.0, metric.getFirstValue().first + "_rate"); - return true; - } - - auto timestampDifference = std::chrono::duration_cast( - metric.getTimestamp() - search->second.getTimestamp()); - int timestampCount = timestampDifference.count(); - // disallow dividing by 0 - if (timestampCount == 0) { - //throw MonitoringException("DerivedMetrics", "Division by 0 when calculating rate for: " + metric.getName() + "/" + metric.getFirstValue().first); - } - - auto current = metric.getFirstValue().second; - auto previous = search->second.getFirstValue().second; - auto rate = std::visit(VariantVisitorRate(timestampCount), current, previous); - - // handle situation when a new run starts - auto isZero = std::visit(overloaded{ - [](auto arg) { return arg == 0; }, - [](const std::string& arg) { return arg == ""; } - }, current); - if (rate < 0 && isZero) { - rate = 0; - } - - // swap metrics - mStorage.erase(key); - mStorage.insert(std::make_pair(key, metric)); - // add rate field - metric.addValue(rate, metric.getFirstValue().first + "_rate"); - return true; - }}, - {DerivedMetricMode::SUPPRESS, [this](Metric& metric) { - auto tags = metric.getTags(); - std::string key = metric.getName(); - std::for_each(tags.begin(), tags.end(), [&key](auto const& pair) { - key += pair.second; - }); - - // if no previous values -> store and send - auto search = mStorage.find(key); - if (search == mStorage.end()) { - mStorage.insert(std::make_pair(key, metric)); - return true; - } - // if same values and timeout not reached -> skip - if (metric.getFirstValue().second == search->second.getFirstValue().second - && std::chrono::duration_cast( - metric.getTimestamp() - search->second.getTimestamp() - ) < std::chrono::seconds(DerivedMetrics::mSuppressTimeout)) { - return false; - } - mStorage.erase(key); - mStorage.insert(std::make_pair(key, metric)); - return true; - }} - }; - auto iterator = map.find(mode); - if (iterator == map.end()) { - throw MonitoringException("DerivedMetrics", "Unknown mode"); - } - return iterator->second(metric); -} - -std::chrono::seconds DerivedMetrics::mSuppressTimeout{300}; - -} // namespace monitoring -} // namespace o2 diff --git a/src/Exceptions/MonitoringException.cxx b/src/Exceptions/MonitoringException.cxx deleted file mode 100644 index b7e226ff7..000000000 --- a/src/Exceptions/MonitoringException.cxx +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -/// -/// \file MonitoringException.cxx -/// \author Adam Wegrzynek -/// - -#include "MonitoringException.h" -#include "../MonLogger.h" - -namespace o2 -{ -/// ALICE O2 Monitoring system -namespace monitoring -{ - -MonitoringException::MonitoringException(const std::string& source, const std::string& message) - : message(message) -{ - MonLogger::Get(Severity::Error) << "MonitoringException[" - << source << "] : " << message << MonLogger::End(); -} - -const char* MonitoringException::what() const throw() -{ - return message.c_str(); -} - -} // namespace monitoring -} // namespace o2 diff --git a/src/Exceptions/MonitoringException.h b/src/Exceptions/MonitoringException.h deleted file mode 100644 index 614eb5b33..000000000 --- a/src/Exceptions/MonitoringException.h +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -/// -/// \file MonitoringException.h -/// \author Adam Wegrzynek -/// - -#ifndef ALICEO2_MONITORING_EXCEPTIONS_INTERNAL_MONITORING_H -#define ALICEO2_MONITORING_EXCEPTIONS_INTERNAL_MONITORING_H - -#include -#include - -namespace o2 -{ -/// ALICE O2 Monitoring system -namespace monitoring -{ - -/// \brief Internal monitoring exception -class MonitoringException : public std::exception -{ - public: - MonitoringException(const std::string& source, const std::string& message); - ~MonitoringException() = default; - const char* what() const throw(); - - private: - std::string message; -}; - -} // namespace monitoring -} // namespace o2 - -#endif //ALICEO2_MONITORING_EXCEPTIONS_INTERNAL_MONITORING_H diff --git a/src/Metric.cxx b/src/Metric.cxx deleted file mode 100644 index eb2c3d84b..000000000 --- a/src/Metric.cxx +++ /dev/null @@ -1,195 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -/// -/// \file Metric.cxx -/// \author Adam Wegrzynek -/// - -#include "Monitoring/Metric.h" -#include "VariantVisitorAdd.h" - -#include -#include -#include - -namespace o2 -{ -/// ALICE O2 Monitoring system -namespace monitoring -{ - -std::chrono::time_point Metric::getTimestamp() const -{ - return mTimestamp; -} - -const std::string& Metric::getName() const -{ - return mName; -} - -Metric::Metric(int value, const std::string& name, Verbosity verbosity) : mName(name), mTimestamp(Metric::getCurrentTimestamp()), mVerbosity(verbosity) -{ - overwriteVerbosity(); - addValue(value, Metric::mDefaultValueName); -} - -Metric::Metric(std::string value, const std::string& name, Verbosity verbosity) : mName(name), mTimestamp(Metric::getCurrentTimestamp()), mVerbosity(verbosity) -{ - overwriteVerbosity(); - addValue(value, Metric::mDefaultValueName); -} - -Metric::Metric(double value, const std::string& name, Verbosity verbosity) : mName(name), mTimestamp(Metric::getCurrentTimestamp()), mVerbosity(verbosity) -{ - overwriteVerbosity(); - addValue(value, Metric::mDefaultValueName); -} - -Metric::Metric(uint64_t value, const std::string& name, Verbosity verbosity) : mName(name), mTimestamp(Metric::getCurrentTimestamp()), mVerbosity(verbosity) -{ - overwriteVerbosity(); - addValue(value, Metric::mDefaultValueName); -} - -Metric&& Metric::addValue(int value, const std::string& name) -{ - mValues.push_back({name, value}); - return std::move(*this); -} -Metric&& Metric::addValue(double value, const std::string& name) -{ - mValues.push_back({name, value}); - return std::move(*this); -} -Metric&& Metric::addValue(uint64_t value, const std::string& name) -{ - mValues.push_back({name, value}); - return std::move(*this); -} - -Metric&& Metric::increaseValue(const std::variant& value, const std::string& name) -{ - auto find = std::find_if( - mValues.begin(), mValues.end(), - [&](std::pair>& el) { return el.first == name; } - ); - if (find != mValues.end()) { - find->second = std::visit(VariantVisitorAdd{}, find->second, value); - } else { - addValue(value, name); - } - return std::move(*this); -} - -Metric&& Metric::addValue(std::string value, const std::string& name) -{ - mValues.push_back({name, value}); - return std::move(*this); -} - -Metric&& Metric::addValue(const std::variant& value, const std::string& name) -{ - mValues.push_back({name, value}); - return std::move(*this); -} - -Metric::Metric(const std::string& name, Verbosity verbosity, const std::chrono::time_point& timestamp) : mName(name), mTimestamp(timestamp), mVerbosity(verbosity) -{ - overwriteVerbosity(); -} - -Verbosity Metric::getVerbosity() -{ - return mVerbosity; -} - -void Metric::setVerbosityPolicy(Verbosity verbosity, const std::regex& regex) -{ - mRegexPolicy.insert({static_cast::type>(verbosity), regex}); -} - -void Metric::overwriteVerbosity() -{ - for (auto const& [verbosity, regex] : mRegexPolicy) { - if (std::regex_match(mName, regex)) { - mVerbosity = static_cast(verbosity); - } - } -} - -Metric&& Metric::addTag(tags::Key key, tags::Value value) -{ - mTags.push_back({static_cast::type>(key), static_cast::type>(value)}); - return std::move(*this); -} - -Metric&& Metric::addTag(tags::Key key, unsigned short number) -{ - mTags.push_back({static_cast::type>(key), 0 - number}); - return std::move(*this); -} - -Metric&& Metric::setTags(std::vector>&& tags) -{ - mTags = std::move(tags); - return std::move(*this); -} - -const std::vector>& Metric::getTags() const -{ - return mTags; -} - -auto Metric::getCurrentTimestamp() -> decltype(std::chrono::system_clock::now()) -{ - return std::chrono::system_clock::now(); -} - -void Metric::setDefaultVerbosity(Verbosity verbosity) -{ - Metric::DefaultVerbosity = verbosity; -} - -const std::vector>>& Metric::getValues() const -{ - return mValues; -} - -const std::pair>& Metric::getFirstValue() const -{ - return mValues.front(); -} - -std::size_t Metric::getValuesSize() const noexcept -{ - return mValues.size(); -} - -int Metric::getFirstValueType() const -{ - if (std::holds_alternative(mValues.front().second)) - return 0; - else if (std::holds_alternative(mValues.front().second)) - return 1; - else if (std::holds_alternative(mValues.front().second)) - return 2; - else - return 3; -} - -bool Metric::includeTimestamp = true; -Verbosity Metric::DefaultVerbosity = Verbosity::Info; -std::map::type, std::regex> Metric::mRegexPolicy; - -} // namespace monitoring -} // namespace o2 diff --git a/src/MonLogger.h b/src/MonLogger.h deleted file mode 100644 index 4fadcb614..000000000 --- a/src/MonLogger.h +++ /dev/null @@ -1,136 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -/// -/// \file MonLogger.h -/// \author Adam Wegrzynek -/// - -#ifndef MONITORING_MONINFOLOGGER_H -#define MONITORING_MONINFOLOGGER_H - -#include - -#ifdef O2_MONITORING_WITH_INFOLOGGER -#include -using namespace AliceO2::InfoLogger; -#else -#include -#include -#endif - -namespace o2 -{ -/// ALICE O2 Monitoring system -namespace monitoring -{ - -/// List of possible log severities -#ifdef O2_MONITORING_WITH_INFOLOGGER -enum class Severity { Error = InfoLogger::Severity::Error, // 69 - Warn = InfoLogger::Severity::Warning, // 87 - Info = InfoLogger::Severity::Info, // 73 - Debug = InfoLogger::Severity::Debug}; // 68 - -#else -enum class Severity { Error = 31, - Warn = 33, - Info = 49, - Debug = 50}; -#endif - - -/// Simple Monitoring logging class -class MonLogger -{ - public: - /// Appends value/message to the log - /// \param log - message - /// \return - this to allow chaining - template - MonLogger& operator<<(const T& log) - { - if (!mMute) { - mStream << log; - } - return *this; - } - - /// Singleton - /// Returns Logger instance with current date and given severity - /// \param severity - severity level - /// \return - logger instance - static MonLogger& Get(Severity severity = Severity::Debug) - { - static MonLogger loggerInstance; - loggerInstance.logHeader(severity); - return loggerInstance; - } - - /// Logger severity to be set by the user - inline static Severity mLoggerSeverity = Severity::Warn; - - /// Terminates log line - /// return - string with color termination and new line -#ifdef O2_MONITORING_WITH_INFOLOGGER - static auto End() -> decltype(InfoLogger::endm) { return InfoLogger::endm; } -#else - static auto End() -> decltype("\033[0m\n") { return "\033[0m\n"; } -#endif - - private: - /// Makes sure Debug messages are muted - bool mMute = false; - -#ifdef O2_MONITORING_WITH_INFOLOGGER - /// InfoLogger log output stream - InfoLogger mStream; - void logHeader(Severity severity) - { - InfoLoggerContext context; - context.setField(InfoLoggerContext::FieldName::System, "Monitoring"); - context.setField(InfoLoggerContext::FieldName::Facility, "Library"); - mStream.setContext(context); - static InfoLogger::AutoMuteToken wToken({InfoLogger::Severity::Warning, InfoLogger::Level::Devel, -1, nullptr, -1}, 2, 60); - - mMute = (static_cast(severity) >= static_cast(mLoggerSeverity) || severity == Severity::Error) ? false : true; - if (severity == Severity::Warn) { - mStream << &wToken; - } else { - mStream << InfoLogger::InfoLoggerMessageOption { static_cast(severity), InfoLogger::Level::Devel, -1, __FILE__, __LINE__ }; - } - } -#else - /// Ostream log output stream - std::ostream& mStream = std::cout; - void logHeader(Severity severity) - { - mMute = (static_cast::type>(severity) > static_cast::type>(mLoggerSeverity)) ? true : false; - *this << "\033[0;" << static_cast(severity) << "m"; - auto now = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now()); - *this << std::put_time(std::localtime(&now), "%Y-%m-%d %X") << "\t" << "Monitoring" << "\t"; - } -#endif - - /// Sets cout as a log stream - MonLogger() = default; - - /// Delete copy and move constructors - MonLogger& operator=(const MonLogger&) = delete; - MonLogger(const MonLogger&) = delete; - MonLogger(MonLogger&&) = delete; - MonLogger& operator=(MonLogger&&) = delete; -}; - -} // namespace monitoring -} // namespace o2 - -#endif //MONITORING_MONINFOLOGGER_H diff --git a/src/Monitoring.cxx b/src/Monitoring.cxx deleted file mode 100644 index 10414e816..000000000 --- a/src/Monitoring.cxx +++ /dev/null @@ -1,199 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -/// -/// \file Monitoring.cxx -/// \author Adam Wegrzynek -/// - -#include "Monitoring/Monitoring.h" -#include "Exceptions/MonitoringException.h" - -#include -#include -#include -#include -#include -#include -#include - -#include "MonLogger.h" -#include "ProcessDetails.h" - -namespace o2 -{ -/// ALICE O2 Monitoring system -namespace monitoring -{ - -Monitoring::Monitoring() -{ - mProcessMonitor = std::make_unique(); - mDerivedHandler = std::make_unique(); - mBuffering = false; - mProcessMonitoringInterval = 0; - mMonitorRunning = false; -} - -void Monitoring::enableBuffering(const std::size_t size) -{ - mBufferSize = size; - mBuffering = true; - for (std::underlying_type::type i = 0; i < static_cast::type>(Verbosity::Debug); i++) { - mStorage[i].reserve(size); - } -} - -void Monitoring::flushBuffer() -{ - if (!mBuffering) { - MonLogger::Get() << "Cannot flush as buffering is disabled" << MonLogger::End(); - return; - } - for (auto& [verbosity, buffer] : mStorage) { - if (buffer.empty()) { - continue; - } - for (auto& backend : mBackends) { - if (matchVerbosity(backend->getVerbosity(), static_cast(verbosity))) { - backend->send(std::move(buffer)); - } - } - buffer.clear(); - } -} - -void Monitoring::flushBuffer(const short index) -{ - for (auto& backend : mBackends) { - if (matchVerbosity(backend->getVerbosity(), static_cast(index))) { - backend->send(std::move(mStorage[index])); - } - } - mStorage[index].clear(); -} - -void Monitoring::enableProcessMonitoring(const unsigned int interval, std::vector enabledMeasurements) -{ - mProcessMonitoringInterval = interval; - for (const auto& measurement : enabledMeasurements) { - mProcessMonitor->enable(measurement); - } - if (!mMonitorRunning) { - mProcessMonitor->init(); - mMonitorRunning = true; - mMonitorThread = std::thread(&Monitoring::pushLoop, this); - } -} - -void Monitoring::addHostnameTag() -{ - ProcessDetails processDetails{}; - for (auto& backend : mBackends) { - backend->addGlobalTag("hostname", processDetails.getHostname()); - } -} - -void Monitoring::addGlobalTag(std::string_view key, std::string_view value) -{ - for (auto& backend : mBackends) { - backend->addGlobalTag(key, value); - } -} - -void Monitoring::addGlobalTag(tags::Key key, tags::Value value) -{ - for (auto& backend : mBackends) { - backend->addGlobalTag( - tags::TAG_KEY[static_cast::type>(key)], - tags::TAG_VALUE[static_cast::type>(value)]); - } -} - -void Monitoring::setRunNumber(uint32_t run) -{ - for (auto& backend : mBackends) { - backend->setRunNumber(run); - } -} - -void Monitoring::addBackend(std::unique_ptr backend) -{ - mBackends.push_back(std::move(backend)); -} - -Monitoring::~Monitoring() -{ - mMonitorRunning = false; - if (mMonitorThread.joinable()) { - mMonitorThread.join(); - transmit(mProcessMonitor->makeLastMeasurementAndGetMetrics()); - } - flushBuffer(); -} - -void Monitoring::pushLoop() -{ - unsigned int loopCount = 0; - std::this_thread::sleep_for(std::chrono::milliseconds(100)); - while (mMonitorRunning) { - if (mProcessMonitoringInterval != 0 && (loopCount % (mProcessMonitoringInterval * 10)) == 0) { - transmit(mProcessMonitor->getPerformanceMetrics()); - } - std::this_thread::sleep_for(std::chrono::milliseconds(100)); - (loopCount >= 600) ? loopCount = 0 : loopCount++; - } -} - -void Monitoring::transmit(std::vector&& metrics) -{ - for (auto& backend : mBackends) { - backend->send(std::move(metrics)); - } -} - -void Monitoring::transmit(Metric&& metric) -{ - if (mBuffering) { - auto index = static_cast::type>(metric.getVerbosity()); - mStorage[index].push_back(std::move(metric)); - if (mStorage[index].size() >= mBufferSize) { - flushBuffer(index); - } - } else { - for (auto& backend : mBackends) { - if (matchVerbosity(backend->getVerbosity(), metric.getVerbosity())) { - backend->send(metric); - } - } - } -} - -void Monitoring::send(Metric&& metric, DerivedMetricMode mode) -{ - if (mode != DerivedMetricMode::NONE) { - try { - if (!mDerivedHandler->process(metric, mode)) { - return; - } - } catch (MonitoringException& e) { - MonLogger::Get() << e.what() << MonLogger::End(); - } - } - transmit(std::move(metric)); -} - -inline bool Monitoring::matchVerbosity(Verbosity backend, Verbosity metric) -{ - return (static_cast::type>(backend) >= static_cast::type>(metric)); -} -} // namespace monitoring -} // namespace o2 diff --git a/src/MonitoringFactory.cxx b/src/MonitoringFactory.cxx deleted file mode 100644 index 99285c46a..000000000 --- a/src/MonitoringFactory.cxx +++ /dev/null @@ -1,233 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -/// -/// \file MonitoringFactory.cxx -/// \author Adam Wegrzynek -/// - -#include "Monitoring/MonitoringFactory.h" -#include "Exceptions/MonitoringException.h" -#include -#include -#include "MonLogger.h" -#include "UriParser/UriParser.h" - -#include "Backends/StdOut.h" -#include "Backends/Noop.h" -#include "Backends/InfluxDB.h" - -#include "Transports/UDP.h" -#include "Transports/Unix.h" -#include "Transports/StdOut.h" -#include "Transports/WebSocket.h" - -#ifdef O2_MONITORING_WITH_APPMON -#include "Backends/ApMonBackend.h" -#endif - -#ifdef O2_MONITORING_WITH_KAFKA -#include "Transports/KafkaProducer.h" -#include "Transports/KafkaConsumer.h" -#endif - -#ifdef O2_MONITORING_WITH_CURL -#include "Transports/HTTP.h" -#endif - -namespace o2 -{ -/// ALICE O2 Monitoring system -namespace monitoring -{ - -static const std::map verbosities = { - {"/prod", Verbosity::Prod}, - {"/info", Verbosity::Info}, - {"/debug", Verbosity::Debug}}; - -std::unique_ptr getStdOut(http::url uri) -{ - if (uri.search.size() > 0) { - return std::make_unique(uri.search); - } else { - return std::make_unique(); - } -} - -/// Extracts token from header add sets it as addition HTTP header -/// http://localhost:9999/?org=YOUR_ORG&bucket=YOUR_BUCKET&token=AUTH_TOKEN -/// -> -/// http://localhost:9999/api/v2/write?org=YOUR_ORG&bucket=YOUR_BUCKET -/// --header "Authorization: Token YOURAUTHTOKEN" -std::unique_ptr getInfluxDbv2(http::url uri) -{ -#ifdef O2_MONITORING_WITH_CURL - std::string tokenLabel = "token="; - std::string path = "/api/v2/write"; - std::string query = uri.search; - - auto tokenStart = query.find(tokenLabel); - auto tokenEnd = query.find('&', tokenStart); - if (tokenEnd == std::string::npos) { - tokenEnd = query.length(); - } - std::string token = query.substr(tokenStart + tokenLabel.length(), tokenEnd-(tokenStart + tokenLabel.length())); - // make sure ampersand is removed - if (tokenEnd < query.length() && query.at(tokenEnd) == '&') tokenEnd++; - if (tokenStart > 0 && query.at(tokenStart-1) == '&') tokenStart--; - query.erase(tokenStart, tokenEnd - tokenStart); - - auto transport = std::make_unique("http://" + uri.host + ':' + std::to_string(uri.port) + path + '?' + query); - transport->addHeader("Authorization: Token " + token); - return std::make_unique(std::move(transport)); -#else - throw MonitoringException("Factory", "HTTP transport is not enabled"); -#endif -} - -std::unique_ptr getInfluxDb(http::url uri) -{ - auto const position = uri.protocol.find_last_of('-'); - if (position != std::string::npos) { - uri.protocol = uri.protocol.substr(position + 1); - } - if (uri.protocol == "udp") { - auto transport = std::make_unique(uri.host, uri.port); - return std::make_unique(std::move(transport)); - } - if (uri.protocol == "unix") { - std::string path = uri.path; - auto found = std::find_if(begin(verbosities), end(verbosities), - [&](const auto& s) { return path.find(s.first) != std::string::npos; }); - if (found != end(verbosities)) { - path.erase(path.rfind('/')); - } - auto transport = std::make_unique(path); - return std::make_unique(std::move(transport)); - } - if (uri.protocol == "stdout") { - auto transport = std::make_unique(); - return std::make_unique(std::move(transport)); - } - if (uri.protocol == "ws") { - std::string tokenLabel = "token="; - auto tokenSearch = uri.search.find(tokenLabel); - uri.path.erase(std::remove(uri.path.begin(), uri.path.end(), '/'), uri.path.end()); - if (tokenSearch == std::string::npos) { - throw MonitoringException("Factory", "Grafana token is required for WebSocket backend"); - } - std::string token = uri.search.substr(tokenSearch + tokenLabel.length()); - auto transport = std::make_unique(uri.host, uri.port, token, uri.path); - return std::make_unique(std::move(transport)); - } - if (uri.protocol == "kafka") { -#ifdef O2_MONITORING_WITH_KAFKA - auto transport = std::make_unique(uri.host, uri.port, uri.search); - return std::make_unique(std::move(transport)); -#else - throw MonitoringException("Factory", "Kafka transport is not enabled"); -#endif - } - throw MonitoringException("Factory", "InfluxDB transport not supported: " + uri.protocol); -} - -#ifdef O2_MONITORING_WITH_APPMON -std::unique_ptr getApMon(http::url uri) -{ - return std::make_unique(uri.path); -} -#else -std::unique_ptr getApMon(http::url /*uri*/) -{ - throw MonitoringException("Factory", "ApMon backend is not enabled"); -} -#endif - -std::unique_ptr getNoop(http::url /*uri*/) -{ - return std::make_unique(); -} - -void MonitoringFactory::SetVerbosity(std::string selected, std::unique_ptr& backend) -{ - auto found = verbosities.find(selected); - if (found == verbosities.end()) { - return; - } - backend->setVerbosity(found->second); - MonLogger::Get() << "...verbosity set to " - << static_cast::type>(found->second) - << MonLogger::End(); -} - -std::unique_ptr MonitoringFactory::GetBackend(std::string& url) -{ - static const std::map(const http::url&)>> map = { - {"infologger", getStdOut}, - {"stdout", getStdOut}, - {"influxdb-udp", getInfluxDb}, - {"influxdb-unix", getInfluxDb}, - {"influxdb-stdout", getInfluxDb}, - {"influxdb-kafka", getInfluxDb}, - {"influxdb-ws", getInfluxDb}, - {"influxdbv2", getInfluxDbv2}, - {"apmon", getApMon}, - {"no-op", getNoop} - }; - - http::url parsedUrl = http::ParseHttpUrl(url); - if (parsedUrl.protocol.empty()) { - throw MonitoringException("Factory", "Ill-formed URI"); - } - - auto iterator = map.find(parsedUrl.protocol); - if (iterator == map.end()) { - throw MonitoringException("Factory", "Unrecognized backend " + parsedUrl.protocol); - } - try { - if (parsedUrl.user == "debug") { - MonLogger::mLoggerSeverity = Severity::Debug; - } - auto backend = iterator->second(parsedUrl); - if (!parsedUrl.path.empty() && parsedUrl.path != "/") { - SetVerbosity(parsedUrl.path.substr(parsedUrl.path.rfind("/")), backend); - } - return backend; - } catch (...) { - throw MonitoringException("Factory", "Unable to create backend " + parsedUrl.url); - } -} - -std::unique_ptr MonitoringFactory::Get(std::string urlsString) -{ - auto monitoring = std::make_unique(); - - std::vector urls; - boost::split(urls, urlsString, boost::is_any_of(",")); - - for (auto url : urls) { - monitoring->addBackend(MonitoringFactory::GetBackend(url)); - } - return monitoring; -} -#ifdef O2_MONITORING_WITH_KAFKA -std::unique_ptr MonitoringFactory::GetPullClient(const std::string &url, const std::vector& topics, const std::string &label) { - auto client = std::make_unique(url, topics, label); - return client; -#else -std::unique_ptr MonitoringFactory::GetPullClient(const std::string&, const std::vector&, const std::string&) { - throw MonitoringException("Factory", "Compile library with Kafka"); -#endif -} - -} // namespace monitoring -} // namespace o2 diff --git a/src/ProcessDetails.cxx b/src/ProcessDetails.cxx deleted file mode 100644 index bf58292b7..000000000 --- a/src/ProcessDetails.cxx +++ /dev/null @@ -1,91 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -/// -/// \file ProcessDetails.cxx -/// \author Adam Wegrzynek -/// - -#include "ProcessDetails.h" - -#include - -#ifdef O2_MONITORING_OS_MAC -#include -#endif - -namespace o2 -{ -/// ALICE O2 Monitoring system -namespace monitoring -{ - -ProcessDetails::ProcessDetails() -{ - generatePid(); - generateProcessName(); - generateHostname(); -} - -inline void ProcessDetails::generatePid() -{ - mPid = ::getpid(); -} - -inline void ProcessDetails::generateProcessName() -{ - char buff[255]; -#ifdef O2_MONITORING_OS_LINUX - ssize_t len = ::readlink("/proc/self/exe", buff, sizeof(buff) - 1); - if (len != -1) { - buff[len] = '\0'; - mProcessName = std::string(buff); - } -#endif - -#ifdef O2_MONITORING_OS_MAC - uint32_t size = sizeof(buff); - if (_NSGetExecutablePath(buff, &size) == 0) { - mProcessName = std::string(buff); - } -#endif - - if (mProcessName.empty()) { - mProcessName = ""; - } else { - mProcessName = mProcessName.substr(mProcessName.find_last_of("/") + 1); - } -} - -inline void ProcessDetails::generateHostname() -{ - char hostname[255]; - gethostname(hostname, 255); - mHostname = std::string(hostname); -} - -unsigned int ProcessDetails::getPid() const -{ - return mPid; -} - -std::string ProcessDetails::getProcessName() const -{ - return mProcessName; -} - -std::string ProcessDetails::getHostname() const -{ - return mHostname; -} - -} // namespace monitoring -} // namespace o2 diff --git a/src/ProcessDetails.h b/src/ProcessDetails.h deleted file mode 100644 index 4d2ddf975..000000000 --- a/src/ProcessDetails.h +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -/// -/// \file ProcessDetails.h -/// \author Adam Wegrzynek -/// - -#ifndef ALICEO2_MONITORING_PROCESSDETAILS_H -#define ALICEO2_MONITORING_PROCESSDETAILS_H - -#include - -namespace o2 -{ -/// ALICE O2 Monitoring system -namespace monitoring -{ - -/// \brief Collects process and machine related details such as PID, process name, hostname -class ProcessDetails -{ - public: - /// Generates all data - ProcessDetails(); - - /// PID getter - unsigned int getPid() const; - - /// Process name getter - std::string getProcessName() const; - - /// Hostname getter - std::string getHostname() const; - - private: - /// PID - unsigned int mPid; - - /// Hostname - std::string mHostname; - - /// Process name - std::string mProcessName; - - /// Retrieves PID - void generatePid(); - - /// Retrieves process name - void generateProcessName(); - - /// Retrieves hostname - void generateHostname(); -}; - -} // namespace monitoring -} // namespace o2 - -#endif // ALICEO2_MONITORING_PROCESSDETAILS_H diff --git a/src/ProcessMonitor.cxx b/src/ProcessMonitor.cxx deleted file mode 100644 index 1918a8530..000000000 --- a/src/ProcessMonitor.cxx +++ /dev/null @@ -1,219 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -/// -/// \file ProcessMonitor.cxx -/// \author Adam Wegrzynek -/// - -#include "Monitoring/ProcessMonitor.h" -#include "MonLogger.h" -#include -#include -#include -#include -#include -#include -#include -#include - -namespace o2 -{ -/// ALICE O2 Monitoring system -namespace monitoring -{ - -#ifdef O2_MONITORING_OS_CC7 -static constexpr auto SMAPS_FILE = "/proc/self/smaps"; -#else -static constexpr auto SMAPS_FILE = "/proc/self/smaps_rollup"; -#endif - -ProcessMonitor::ProcessMonitor() -{ - mPid = static_cast(::getpid()); - mTimeLastRun = std::chrono::high_resolution_clock::now(); - getrusage(RUSAGE_SELF, &mPreviousGetrUsage); -#ifdef O2_MONITORING_OS_LINUX - setTotalMemory(); -#endif - mEnabledMeasurements.fill(false); -} - -void ProcessMonitor::init() -{ - mTimeLastRun = std::chrono::high_resolution_clock::now(); - getrusage(RUSAGE_SELF, &mPreviousGetrUsage); -} - -void ProcessMonitor::enable(PmMeasurement measurement) -{ - mEnabledMeasurements[static_cast(measurement)] = true; -} - -void ProcessMonitor::setTotalMemory() -{ - std::ifstream memInfo("/proc/meminfo"); - std::string totalString; - std::getline(memInfo, totalString); - mTotalMemory = splitStatusLineAndRetriveValue(totalString); -} - -std::vector ProcessMonitor::getMemoryUsage() -{ - std::vector metrics; - std::ifstream statusStream("/proc/self/status"); - std::string rssString; - rssString.reserve(50); - - // Scan for VmSize - for (unsigned i = 0; i < VM_SIZE_INDEX; ++i) { - std::getline(statusStream, rssString); - } - auto vmSize = splitStatusLineAndRetriveValue(rssString); - mVmSizeMeasurements.push_back(vmSize); - - metrics.emplace_back((vmSize * 100) / mTotalMemory, metricsNames[MEMORY_USAGE_PERCENTAGE]); - metrics.emplace_back(vmSize, metricsNames[VIRTUAL_MEMORY_SIZE]); - - // Scan for VmRSS - for (unsigned i = 0; i < VM_RSS_INDEX - VM_SIZE_INDEX; ++i) { - std::getline(statusStream, rssString); - } - - auto vmRSS = splitStatusLineAndRetriveValue(rssString); - metrics.emplace_back(vmRSS, metricsNames[RESIDENT_SET_SIZE]); - mVmRssMeasurements.push_back(vmRSS); - - return metrics; -} - -std::vector ProcessMonitor::getSmaps() -{ - std::ifstream statusStream(SMAPS_FILE); - double pssTotal = 0; - double cleanTotal = 0; - double dirtyTotal = 0; - std::string smapsString; - - while (std::getline(statusStream, smapsString)) { - if (smapsString.rfind("Pss:", 0) == 0) { - pssTotal += splitStatusLineAndRetriveValue(smapsString); - } - if (smapsString.rfind("Private_Clean:", 0) == 0) { - cleanTotal += splitStatusLineAndRetriveValue(smapsString); - } - if (smapsString.rfind("Private_Dirty:", 0) == 0) { - dirtyTotal += splitStatusLineAndRetriveValue(smapsString); - } - } - return {{pssTotal, metricsNames[PSS]}, {cleanTotal, metricsNames[PRIVATE_CLEAN]}, {dirtyTotal, metricsNames[PRIVATE_DIRTY]}}; -} - -std::vector ProcessMonitor::getCpuAndContexts() -{ - std::vector metrics; - struct rusage currentUsage; - getrusage(RUSAGE_SELF, ¤tUsage); - auto timeNow = std::chrono::high_resolution_clock::now(); - double timePassed = std::chrono::duration_cast(timeNow - mTimeLastRun).count(); - if (timePassed < 950) { - MonLogger::Get(Severity::Warn) << "Do not invoke Process Monitor more frequent then every 1s" << MonLogger::End(); - metrics.emplace_back("processPerformance"); - return metrics; - } - - uint64_t cpuUsedInMicroSeconds = currentUsage.ru_utime.tv_sec * 1000000.0 + currentUsage.ru_utime.tv_usec - (mPreviousGetrUsage.ru_utime.tv_sec * 1000000.0 + mPreviousGetrUsage.ru_utime.tv_usec) + currentUsage.ru_stime.tv_sec * 1000000.0 + currentUsage.ru_stime.tv_usec - (mPreviousGetrUsage.ru_stime.tv_sec * 1000000.0 + mPreviousGetrUsage.ru_stime.tv_usec); - double fractionCpuUsed = cpuUsedInMicroSeconds / timePassed; - - double cpuUsedPerctange = std::round(fractionCpuUsed * 100.0 * 100.0) / 100.0; - mCpuPerctange.push_back(cpuUsedPerctange); - mCpuMicroSeconds.push_back(cpuUsedInMicroSeconds); - - metrics.emplace_back(Metric{cpuUsedPerctange, metricsNames[CPU_USED_PERCENTAGE]}); - metrics.emplace_back(Metric{ - static_cast(currentUsage.ru_nivcsw - mPreviousGetrUsage.ru_nivcsw), metricsNames[INVOLUNTARY_CONTEXT_SWITCHES]}); - metrics.emplace_back(Metric{ - static_cast(currentUsage.ru_nvcsw - mPreviousGetrUsage.ru_nvcsw), metricsNames[VOLUNTARY_CONTEXT_SWITCHES]}); - metrics.emplace_back(cpuUsedInMicroSeconds, metricsNames[CPU_USED_ABSOLUTE]); - - mTimeLastRun = timeNow; - mPreviousGetrUsage = currentUsage; - return metrics; -} - -double ProcessMonitor::splitStatusLineAndRetriveValue(const std::string& line) const -{ - std::istringstream iss(line); - std::vector tokens{std::istream_iterator{iss}, - std::istream_iterator{}}; - return tokens.size() < 2 ? -1.0 : std::stod(tokens.at(1)); -} - -std::vector ProcessMonitor::getPerformanceMetrics() -{ - std::vector metrics; - metrics.reserve(12); - if (mEnabledMeasurements.at(static_cast(PmMeasurement::Cpu))) { - auto cpuMetrics = getCpuAndContexts(); - std::move(cpuMetrics.begin(), cpuMetrics.end(), std::back_inserter(metrics)); - } -#ifdef O2_MONITORING_OS_LINUX - if (mEnabledMeasurements.at(static_cast(PmMeasurement::Mem))) { - auto memoryMetrics = getMemoryUsage(); - std::move(memoryMetrics.begin(), memoryMetrics.end(), std::back_inserter(metrics)); - } - if (mEnabledMeasurements.at(static_cast(PmMeasurement::Smaps))) { - auto smapMetrics = getSmaps(); - std::move(smapMetrics.begin(), smapMetrics.end(), std::back_inserter(metrics)); - } -#endif - return metrics; -} - -std::vector ProcessMonitor::makeLastMeasurementAndGetMetrics() -{ - std::vector metrics; -#ifdef O2_MONITORING_OS_LINUX - if (mEnabledMeasurements.at(static_cast(PmMeasurement::Mem))) { - getMemoryUsage(); - - auto avgVmRSS = std::accumulate(mVmRssMeasurements.begin(), mVmRssMeasurements.end(), 0.0) / - mVmRssMeasurements.size(); - - metrics.emplace_back(avgVmRSS, metricsNames[AVG_RESIDENT_SET_SIZE]); - - auto avgVmSize = std::accumulate(mVmSizeMeasurements.begin(), mVmSizeMeasurements.end(), 0.0) / - mVmSizeMeasurements.size(); - metrics.emplace_back(avgVmSize, metricsNames[AVG_VIRTUAL_MEMORY_SIZE]); - } -#endif - if (mEnabledMeasurements.at(static_cast(PmMeasurement::Cpu))) { - getCpuAndContexts(); - - auto avgCpuUsage = std::accumulate(mCpuPerctange.begin(), mCpuPerctange.end(), 0.0) / - mCpuPerctange.size(); - uint64_t accumulationOfCpuTimeConsumption = std::accumulate(mCpuMicroSeconds.begin(), - mCpuMicroSeconds.end(), 0UL); - - metrics.emplace_back(avgCpuUsage, metricsNames[AVG_CPU_USED_PERCENTAGE]); - metrics.emplace_back(accumulationOfCpuTimeConsumption, metricsNames[ACCUMULATED_CPU_TIME]); - } - return metrics; -} - -std::vector ProcessMonitor::getAvailableMetricsNames() -{ - return {std::begin(metricsNames), std::end(metricsNames)}; -} - -} // namespace monitoring -} // namespace o2 diff --git a/src/Transports/HTTP.cxx b/src/Transports/HTTP.cxx deleted file mode 100644 index 5d93e4560..000000000 --- a/src/Transports/HTTP.cxx +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -/// -/// \file HTTP.cxx -/// \author Adam Wegrzynek -/// - -#include "HTTP.h" -#include "../MonLogger.h" -#include "../Exceptions/MonitoringException.h" - -namespace o2 -{ -/// ALICE O2 Monitoring system -namespace monitoring -{ -/// Monitoring transports -namespace transports -{ - -HTTP::HTTP(const std::string& url) -{ - mHeaders = NULL; - mCurl = curl_easy_init(); - curl_easy_setopt(mCurl, CURLOPT_URL, url.c_str()); - curl_easy_setopt(mCurl, CURLOPT_SSL_VERIFYPEER, 0); - curl_easy_setopt(mCurl, CURLOPT_CONNECTTIMEOUT, 10); - curl_easy_setopt(mCurl, CURLOPT_TIMEOUT, 10); - curl_easy_setopt(mCurl, CURLOPT_POST, 1); - curl_easy_setopt(mCurl, CURLOPT_TCP_KEEPIDLE, 120L); - curl_easy_setopt(mCurl, CURLOPT_TCP_KEEPINTVL, 60L); - FILE *devnull = fopen("/dev/null", "w+"); - curl_easy_setopt(mCurl, CURLOPT_WRITEDATA, devnull); - - MonLogger::Get(Severity::Info) << "HTTP transport initialized (" << url << ")" << MonLogger::End(); -} - -HTTP::~HTTP() -{ - curl_slist_free_all(mHeaders); - curl_easy_cleanup(mCurl); - curl_global_cleanup(); -} - -void HTTP::addHeader(const std::string& header) -{ - mHeaders = curl_slist_append(mHeaders, header.c_str()); - curl_easy_setopt(mCurl, CURLOPT_HTTPHEADER, mHeaders); -} - -void HTTP::send(std::string&& post) -{ - CURLcode response; - long responseCode; - curl_easy_setopt(mCurl, CURLOPT_POSTFIELDS, post.c_str()); - curl_easy_setopt(mCurl, CURLOPT_POSTFIELDSIZE, (long) post.length()); - response = curl_easy_perform(mCurl); - curl_easy_getinfo(mCurl, CURLINFO_RESPONSE_CODE, &responseCode); - if (response != CURLE_OK) { - MonLogger::Get(Severity::Warn) << "HTTP Tranport " << curl_easy_strerror(response) << MonLogger::End(); - } - if (responseCode < 200 || responseCode > 206) { - MonLogger::Get(Severity::Warn) << "HTTP Transport: Response code : " << std::to_string(responseCode) << MonLogger::End(); - } -} - -} // namespace transports -} // namespace monitoring -} // namespace o2 diff --git a/src/Transports/HTTP.h b/src/Transports/HTTP.h deleted file mode 100644 index 6a01ce432..000000000 --- a/src/Transports/HTTP.h +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -/// -/// \file HTTP.h -/// \author Adam Wegrzynek -/// - -#ifndef ALICEO2_MONITORING_TRANSPORTS_HTTP_H -#define ALICEO2_MONITORING_TRANSPORTS_HTTP_H - -#include "TransportInterface.h" - -#include -#include - -namespace o2 -{ -/// ALICE O2 Monitoring system -namespace monitoring -{ -/// Monitoring transports -namespace transports -{ - -/// \brief HTTP POST transport -/// -/// Allows to push string formatted metrics as HTTP POST requests via cURL -class HTTP : public TransportInterface -{ - public: - /// Constructor - /// \param url URL of HTTP server endpoint - HTTP(const std::string& url); - - /// Destructor - ~HTTP(); - - /// Sends metric via HTTP POST - /// \param post r-value reference string formatted metric - void send(std::string&& post); - - /// Adds custom HTTP header - void addHeader(const std::string& header); - private: - /// CURL pointers - CURL *mCurl; - - /// HTTP headers struct - struct curl_slist *mHeaders; -}; - -} // namespace transports -} // namespace monitoring -} // namespace o2 - -#endif // ALICEO2_MONITORING_TRANSPORTS_HTTP_H diff --git a/src/Transports/KafkaConsumer.cxx b/src/Transports/KafkaConsumer.cxx deleted file mode 100644 index e2f8b4cad..000000000 --- a/src/Transports/KafkaConsumer.cxx +++ /dev/null @@ -1,93 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -/// -/// \file KafkaConsumer.cxx -/// \author Adam Wegrzynek -/// - -#include "KafkaConsumer.h" -#include -#include -#include "../MonLogger.h" -#include "../Exceptions/MonitoringException.h" - -namespace o2 -{ -/// ALICE O2 Monitoring system -namespace monitoring -{ -/// Monitoring transports -namespace transports -{ - -KafkaConsumer::KafkaConsumer(const std::string& url, const std::vector& topics, const std::string& groupId) : mTopics(topics) -{ - std::string errstr; - std::unique_ptr conf{RdKafka::Conf::create(RdKafka::Conf::CONF_GLOBAL)}; - if (conf->set("bootstrap.servers", url, errstr) != RdKafka::Conf::CONF_OK - || conf->set("enable.partition.eof", "false", errstr) != RdKafka::Conf::CONF_OK - || conf->set("group.id", groupId, errstr) != RdKafka::Conf::CONF_OK - || conf->set("auto.offset.reset", "latest", errstr) != RdKafka::Conf::CONF_OK - || conf->set("heartbeat.interval.ms", "2000", errstr) != RdKafka::Conf::CONF_OK - || conf->set("session.timeout.ms", "6000", errstr) != RdKafka::Conf::CONF_OK - ) { - throw MonitoringException("Kafka Consumer", errstr); - } - - mConsumer = RdKafka::KafkaConsumer::create(conf.get(), errstr); - if (!mConsumer) { - MonLogger::Get(Severity::Error) << "Could not initialize Kafka consumer" << MonLogger::End(); - } - if (mConsumer->subscribe(mTopics)) { - MonLogger::Get(Severity::Warn) << "Failed to subscribe to topic" << MonLogger::End(); - } -} - -std::vector> KafkaConsumer::pull() -{ - std::vector> received; - size_t batch_size = 100; - int remaining_timeout = 1000; - auto start = std::chrono::high_resolution_clock::now(); - - while (received.size() < batch_size) { - std::unique_ptr message{mConsumer->consume(remaining_timeout)}; - switch (message->err()) { - case RdKafka::ERR__TIMED_OUT: - break; - case RdKafka::ERR_NO_ERROR: - received.push_back({message->topic_name(), std::string(static_cast(message->payload()), message->len())}); - break; - default: - std::cerr << "%% Consumer error: " << message->errstr() << std::endl; - return received; - } - auto now = std::chrono::high_resolution_clock::now(); - remaining_timeout = std::chrono::duration_cast(now - start).count(); - if (remaining_timeout > 1000) { - break; - } - } - return received; -} - -KafkaConsumer::~KafkaConsumer() -{ - if (mConsumer) { - mConsumer->close(); - } - delete mConsumer; -} - -} // namespace transports -} // namespace monitoring -} // namespace o2 diff --git a/src/Transports/KafkaConsumer.h b/src/Transports/KafkaConsumer.h deleted file mode 100644 index bdbce3822..000000000 --- a/src/Transports/KafkaConsumer.h +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -/// -/// \file KafkaConsumer.h -/// \author Adam Wegrzynek -/// - -#ifndef ALICEO2_MONITORING_TRANSPORTS_KAFKACONSUMER_H -#define ALICEO2_MONITORING_TRANSPORTS_KAFKACONSUMER_H - -#include "Monitoring/PullClient.h" - -#include -#include -#include - -namespace o2 -{ -/// ALICE O2 Monitoring system -namespace monitoring -{ -/// Monitoring transports -namespace transports -{ - -/// \brief Transport that sends string formatted metrics via Kafka -class KafkaConsumer : public PullClient -{ - public: - /// Creates producer - /// \param url Broker URL (host:port) - /// \param topics Kafka topics to subscribe to - /// \param groupId Kafka consumer group id - KafkaConsumer(const std::string& url, const std::vector& topics, const std::string& groupId); - - /// Deletes producer - ~KafkaConsumer(); - - /// Pulls metrics from Kafka - /// \param message r-value string formated - /// \returns Key-Value pair list as topic : metric - std::vector> pull() override; - private: - /// Kafka producer instance - RdKafka::KafkaConsumer* mConsumer; - - /// Kafka topic - std::vector mTopics; -}; - -} // namespace transports -} // namespace monitoring -} // namespace o2 - -#endif // ALICEO2_MONITORING_TRANSPORTS_KAFKACONSUMER_H diff --git a/src/Transports/KafkaProducer.cxx b/src/Transports/KafkaProducer.cxx deleted file mode 100644 index 6d8cfd2df..000000000 --- a/src/Transports/KafkaProducer.cxx +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -/// -/// \file KafkaProducer.cxx -/// \author Adam Wegrzynek -/// - -#include "KafkaProducer.h" -#include -#include -#include "../MonLogger.h" - -namespace o2 -{ -/// ALICE O2 Monitoring system -namespace monitoring -{ -/// Monitoring transports -namespace transports -{ - -KafkaProducer::KafkaProducer(const std::string& host, unsigned int port, const std::string& topic) : mTopic(topic) -{ - std::string errstr; - std::unique_ptr conf{RdKafka::Conf::create(RdKafka::Conf::CONF_GLOBAL)}; - conf->set("bootstrap.servers", host + ":" + std::to_string(port), errstr); - conf->set("request.required.acks", "0", errstr); - conf->set("message.send.max.retries", "0", errstr); - conf->set("queue.buffering.max.ms", "100", errstr); - conf->set("batch.num.messages", "1000", errstr); - - mProducer = RdKafka::Producer::create(conf.get(), errstr); - if (!mProducer) { - MonLogger::Get(Severity::Error) << "Could not initialize Kafka producer" << MonLogger::End(); - } - MonLogger::Get(Severity::Info) << "Kafka transport initialized (" << host << ":" << port << "/" << mTopic << ")" << MonLogger::End(); -} - -KafkaProducer::~KafkaProducer() -{ - if (mProducer) { - mProducer->flush(250); - } - delete mProducer; -} - -void KafkaProducer::send(std::string&& message) -{ - int32_t partition = RdKafka::Topic::PARTITION_UA; - - RdKafka::ErrorCode resp = mProducer->produce( - mTopic, partition, - RdKafka::Producer::RK_MSG_COPY, - const_cast(message.c_str()), message.size(), - const_cast(mKey.c_str()), mKey.size(), - 0, - NULL, - NULL); - if (resp != RdKafka::ERR_NO_ERROR) { - MonLogger::Get(Severity::Warn) << "Kafka send failed: " << RdKafka::err2str(resp) << MonLogger::End(); - } - mProducer->poll(0); -} - -} // namespace transports -} // namespace monitoring -} // namespace o2 diff --git a/src/Transports/KafkaProducer.h b/src/Transports/KafkaProducer.h deleted file mode 100644 index 9cf1a3a49..000000000 --- a/src/Transports/KafkaProducer.h +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -/// -/// \file KafkaProducer.h -/// \author Adam Wegrzynek -/// - -#ifndef ALICEO2_MONITORING_TRANSPORTS_KAFKAPRODUCER_H -#define ALICEO2_MONITORING_TRANSPORTS_KAFKAPRODUCER_H - -#include "TransportInterface.h" - -#include -#include -#include - -namespace o2 -{ -/// ALICE O2 Monitoring system -namespace monitoring -{ -/// Monitoring transports -namespace transports -{ - -/// \brief Transport that sends string formatted metrics via Kafka -class KafkaProducer : public TransportInterface -{ - public: - /// Creates producer - /// \param hostname Hostname - /// \param port Port number - /// \param topic Kafka topic - KafkaProducer(const std::string& host, unsigned int port, const std::string& topic); - - /// Deletes producer - ~KafkaProducer(); - - /// Sends metric via Kafka - /// \param message r-value string formated - void send(std::string&& message) override; - private: - /// Kafka producer instance - RdKafka::Producer* mProducer; - - /// Kafka topic - std::string mTopic; -}; - -} // namespace transports -} // namespace monitoring -} // namespace o2 - -#endif // ALICEO2_MONITORING_TRANSPORTS_KAFKAPRODUCER_H diff --git a/src/Transports/StdOut.cxx b/src/Transports/StdOut.cxx deleted file mode 100644 index 99b9cc361..000000000 --- a/src/Transports/StdOut.cxx +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -/// -/// \file StdOut.cxx -/// \author Adam Wegrzynek -/// - -#include "StdOut.h" -#include -#include - -namespace o2 -{ -/// ALICE O2 Monitoring system -namespace monitoring -{ -/// Monitoring transports -namespace transports -{ - -void StdOut::send(std::string&& message) -{ - std::cout << message << std::endl; -} - -template -StdOut& StdOut::operator<<(const T& msg) -{ - std::cout << msg; - return *this; -} - -} // namespace transports -} // namespace monitoring -} // namespace o2 diff --git a/src/Transports/StdOut.h b/src/Transports/StdOut.h deleted file mode 100644 index d37ea5ea1..000000000 --- a/src/Transports/StdOut.h +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -/// -/// \file StdOut.h -/// \author Adam Wegrzynek -/// - -#ifndef ALICEO2_MONITORING_TRANSPORTS_STDOUT_H -#define ALICEO2_MONITORING_TRANSPORTS_STDOUT_H - -#include "TransportInterface.h" - -#include -#include - -namespace o2 -{ -/// ALICE O2 Monitoring system -namespace monitoring -{ -/// Monitoring transports -namespace transports -{ - -/// \brief Transport that sends string formatted metrics via StdOut -class StdOut : public TransportInterface -{ - public: - /// Constructor - StdOut() = default; - - /// Default destructor - ~StdOut() = default; - - /// Sends metric via StdOut - /// \param message r-value string formated - void send(std::string&& message) override; - - /// Overload stream operator - template - StdOut& operator<<(const T& msg); -}; - -} // namespace transports -} // namespace monitoring -} // namespace o2 - -#endif // ALICEO2_MONITORING_TRANSPORTS_STDOUT_H diff --git a/src/Transports/TCP.cxx b/src/Transports/TCP.cxx deleted file mode 100644 index 91fbe4b86..000000000 --- a/src/Transports/TCP.cxx +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -/// -/// \file TCP.cxx -/// \author Adam Wegrzynek -/// - -#include "TCP.h" -#include -#include -#include "Exceptions/MonitoringException.h" -#include "../MonLogger.h" - -namespace o2 -{ -/// ALICE O2 Monitoring system -namespace monitoring -{ -/// Monitoring transports -namespace transports -{ - -TCP::TCP(const std::string& hostname, int port) : mSocket(mIoService) -{ - boost::asio::ip::tcp::resolver resolver(mIoService); - boost::asio::ip::tcp::resolver::query query(hostname, std::to_string(port)); - boost::asio::ip::tcp::resolver::iterator resolverIterator = resolver.resolve(query); - - boost::asio::ip::tcp::resolver::iterator end; - boost::system::error_code error = boost::asio::error::host_not_found; - while (error && resolverIterator != end) { - mSocket.close(); - mSocket.connect(*resolverIterator++, error); - } - if (error) { - throw MonitoringException("TCP connection", error.message()); - } - MonLogger::Get(Severity::Info) << "TCP transport initialized (" << hostname << ":" << port << ")" << MonLogger::End(); -} - -void TCP::send(std::string&& message) -{ - try { - mSocket.send(boost::asio::buffer(message)); - } catch (const boost::system::system_error& e) { - MonLogger::Get() << "TCP / " << e.what() << MonLogger::End(); - } -} - -} // namespace transports -} // namespace monitoring -} // namespace o2 diff --git a/src/Transports/TCP.h b/src/Transports/TCP.h deleted file mode 100644 index 345b59386..000000000 --- a/src/Transports/TCP.h +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -/// -/// \file TCP.h -/// \author Adam Wegrzynek -/// - -#ifndef ALICEO2_MONITORING_TRANSPORTS_TCP_H -#define ALICEO2_MONITORING_TRANSPORTS_TCP_H - -#include "TransportInterface.h" - -#include -#include - -namespace o2 -{ -/// ALICE O2 Monitoring system -namespace monitoring -{ -/// Monitoring transports -namespace transports -{ - -/// \brief Transport that sends string formatted metrics via TCP -class TCP : public TransportInterface -{ - public: - /// Constructor - /// \param hostname InfluxDB instance hostname - /// \param port InfluxDB instance port number - TCP(const std::string& hostname, int port); - - /// Default destructor - ~TCP() = default; - - /// Sends metric via UDP - /// \param message r-value string formated - void send(std::string&& message) override; - - private: - /// Boost Asio I/O functionality - boost::asio::io_context mIoService; - - /// TCP socket - boost::asio::ip::tcp::socket mSocket; - - /// TCP endpoint interator - boost::asio::ip::tcp::resolver::iterator mEndpoint; -}; - -} // namespace transports -} // namespace monitoring -} // namespace o2 - -#endif // ALICEO2_MONITORING_TRANSPORTS_TCP_H diff --git a/src/Transports/TransportInterface.h b/src/Transports/TransportInterface.h deleted file mode 100644 index c535eae73..000000000 --- a/src/Transports/TransportInterface.h +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -/// -/// \file TransportInterface.h -/// \author Adam Wegrzynek -/// - -#ifndef ALICEO2_MONITORING_TRANSPORTS_TRANSPORTINTERFACE_H -#define ALICEO2_MONITORING_TRANSPORTS_TRANSPORTINTERFACE_H - -#include -#include -#include - -namespace o2 -{ -/// ALICE O2 Monitoring system -namespace monitoring -{ -/// Monitoring transports -namespace transports -{ - -/// \brief Transport interface for backends -class TransportInterface -{ - protected: - /// Transport record key - // This is needed by some transports to route metrics, eg. Kafka - // This can be set to run number or measurement name and run number - std::string mKey; - - public: - TransportInterface() = default; - - virtual ~TransportInterface() = default; - - /// Sends metric via given transport - /// \param message r-value to string formatted metric - virtual void send(std::string&& message) = 0; - - /// Transport record key setter - void setKey(const std::string& key) { - mKey = key; - } -}; - -} // namespace transports -} // namespace monitoring -} // namespace o2 - -#endif // ALICEO2_MONITORING_TRANSPORTS_TRANSPORTINTERFACE_H diff --git a/src/Transports/UDP.cxx b/src/Transports/UDP.cxx deleted file mode 100644 index f4c0390f7..000000000 --- a/src/Transports/UDP.cxx +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -/// -/// \file UDP.cxx -/// \author Adam Wegrzynek -/// - -#include "UDP.h" -#include -#include "../MonLogger.h" - -namespace o2 -{ -/// ALICE O2 Monitoring system -namespace monitoring -{ -/// Monitoring transports -namespace transports -{ - -UDP::UDP(const std::string& hostname, int port) : mSocket(mIoService, boost::asio::ip::udp::endpoint(boost::asio::ip::udp::v4(), 0)) -{ - boost::asio::ip::udp::resolver resolver(mIoService); - boost::asio::ip::udp::resolver::query query(boost::asio::ip::udp::v4(), hostname, std::to_string(port)); - boost::asio::ip::udp::resolver::iterator resolverInerator = resolver.resolve(query); - mEndpoint = *resolverInerator; - MonLogger::Get(Severity::Info) << "UDP transport initialized (" << hostname << ":" << port << ")" << MonLogger::End(); -} - -void UDP::send(std::string&& message) -{ - mSocket.send_to(boost::asio::buffer(message, message.size()), mEndpoint); -} - -} // namespace transports -} // namespace monitoring -} // namespace o2 diff --git a/src/Transports/UDP.h b/src/Transports/UDP.h deleted file mode 100644 index 6a5562974..000000000 --- a/src/Transports/UDP.h +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -/// -/// \file UDP.h -/// \author Adam Wegrzynek -/// - -#ifndef ALICEO2_MONITORING_TRANSPORTS_UDP_H -#define ALICEO2_MONITORING_TRANSPORTS_UDP_H - -#include "TransportInterface.h" - -#include -#include - -namespace o2 -{ -/// ALICE O2 Monitoring system -namespace monitoring -{ -/// Monitoring transports -namespace transports -{ - -/// \brief Transport that sends string formatted metrics via UDP -class UDP : public TransportInterface -{ - public: - /// Constructor - /// \param hostname InfluxDB instance hostname - /// \param port InfluxDB instance port number - UDP(const std::string& hostname, int port); - - /// Default destructor - ~UDP() = default; - - /// Sends metric via UDP - /// \param message r-value string formated - void send(std::string&& message) override; - - private: - /// Boost Asio I/O functionality - boost::asio::io_context mIoService; - - /// UDP socket - boost::asio::ip::udp::socket mSocket; - - /// UDP endpoint - boost::asio::ip::udp::endpoint mEndpoint; -}; - -} // namespace transports -} // namespace monitoring -} // namespace o2 - -#endif // ALICEO2_MONITORING_TRANSPORTS_UDP_H diff --git a/src/Transports/Unix.cxx b/src/Transports/Unix.cxx deleted file mode 100644 index e8c12687d..000000000 --- a/src/Transports/Unix.cxx +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -/// -/// \file Unix.cxx -/// \author Adam Wegrzynek -/// - -#include "Unix.h" -#include -#include -#include "../MonLogger.h" - -namespace o2 -{ -/// ALICE O2 Monitoring system -namespace monitoring -{ -/// Monitoring transports -namespace transports -{ -#if defined(BOOST_ASIO_HAS_LOCAL_SOCKETS) -Unix::Unix(const std::string& socketPath) : mSocket(mIoService), mEndpoint(socketPath) -{ - if (!std::filesystem::exists(socketPath)) { - MonLogger::Get(Severity::Error) << "Unix socket path is invalid: " << socketPath << MonLogger::End(); - } else { - mSocket.open(); - MonLogger::Get(Severity::Info) << "Unix socket transport initialized (" << socketPath << ")" << MonLogger::End(); - } -} - -void Unix::send(std::string&& message) -{ - try { - mSocket.send_to(boost::asio::buffer(message, message.size()), mEndpoint); - } catch (const boost::system::system_error& e) { - MonLogger::Get(Severity::Warn) << "Unix socket / " << e.what() << MonLogger::End(); - } -} -#endif // defined(BOOST_ASIO_HAS_LOCAL_SOCKETS) -} // namespace transports -} // namespace monitoring -} // namespace o2 diff --git a/src/Transports/Unix.h b/src/Transports/Unix.h deleted file mode 100644 index f293c1421..000000000 --- a/src/Transports/Unix.h +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -/// -/// \file Unix.h -/// \author Adam Wegrzynek -/// - -#ifndef ALICEO2_MONITORING_TRANSPORTS_UNIX_H -#define ALICEO2_MONITORING_TRANSPORTS_UNIX_H - -#include "TransportInterface.h" - -#include -#include - -namespace o2 -{ -/// ALICE O2 Monitoring system -namespace monitoring -{ -/// Monitoring transports -namespace transports -{ - -/// \brief Transport that sends string formatted metrics via Unix datagram socket -class Unix : public TransportInterface -{ - public: - /// \param hostname - /// \param port - Unix(const std::string& socketPath); - - /// Default destructor - ~Unix() = default; - - /// \param message r-value string formated - void send(std::string&& message) override; - - private: - /// Boost Asio I/O functionality - boost::asio::io_context mIoService; -#if defined(BOOST_ASIO_HAS_LOCAL_SOCKETS) - /// Unix socket - boost::asio::local::datagram_protocol::socket mSocket; - - /// Unix endpoint - boost::asio::local::datagram_protocol::endpoint mEndpoint; -#endif // defined(BOOST_ASIO_HAS_LOCAL_SOCKETS) -}; - -} // namespace transports -} // namespace monitoring -} // namespace o2 - -#endif // ALICEO2_MONITORING_TRANSPORTS_UNIX_H diff --git a/src/Transports/WebSocket.cxx b/src/Transports/WebSocket.cxx deleted file mode 100644 index 01fccfa66..000000000 --- a/src/Transports/WebSocket.cxx +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -/// -/// \file WebSocket.cxx -/// \author Adam Wegrzynek -/// - -#include "WebSocket.h" -#include "Exceptions/MonitoringException.h" -#include "../MonLogger.h" - -namespace o2 -{ -/// ALICE O2 Monitoring system -namespace monitoring -{ -/// Monitoring transports -namespace transports -{ - -WebSocket::WebSocket(const std::string& hostname, int port, const std::string& token, const std::string& stream) : mWebSocket(mIoContext) -{ - boost::asio::ip::tcp::resolver resolver{mIoContext}; - auto const results = resolver.resolve(hostname, std::to_string(port)); - boost::asio::connect(mWebSocket.next_layer(), results.begin(), results.end()); - mWebSocket.set_option(beast::websocket::stream_base::decorator( - [&token](beast::websocket::request_type& req) { - req.set(beast::http::field::authorization, "Bearer " + token); - } - )); - mWebSocket.handshake(hostname, "/api/live/push/" + stream); -} - -void WebSocket::read() { - beast::flat_buffer buffer; - mWebSocket.read(buffer); -} - -WebSocket::~WebSocket() -{ - mWebSocket.close(beast::websocket::close_code::normal); -} - -void WebSocket::send(std::string&& message) -{ - mWebSocket.write(boost::asio::buffer(message)); -} - -} // namespace transports -} // namespace monitoring -} // namespace o2 diff --git a/src/Transports/WebSocket.h b/src/Transports/WebSocket.h deleted file mode 100644 index 861f3d806..000000000 --- a/src/Transports/WebSocket.h +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -/// -/// \file WebSocket.h -/// \author Adam Wegrzynek -/// - -#ifndef ALICEO2_MONITORING_TRANSPORTS_WEBSOCKET_H -#define ALICEO2_MONITORING_TRANSPORTS_WEBSOCKET_H - -#include "TransportInterface.h" - -#include -#include -#include -#include -#include - -namespace beast = boost::beast; - -namespace o2 -{ -/// ALICE O2 Monitoring system -namespace monitoring -{ -/// Monitoring transports -namespace transports -{ - -/// \brief Transport that sends string formatted metrics via WebSocket -class WebSocket : public TransportInterface -{ - public: - /// Constructor - /// \param hostname Grafana host - /// \param port Grafana port - /// \param token Grafana API token - /// \param stream Name of WebSocket stream - WebSocket(const std::string& hostname, int port, const std::string& token, const std::string& stream = "alice_o2"); - - /// Gracefull disconnect - ~WebSocket(); - - /// Sends metric via UDP - /// \param message r-value string formated - void send(std::string&& message) override; - - /// Read control frames from socket - void read(); - private: - /// IO context - boost::asio::io_context mIoContext; - - /// Websocket stream - beast::websocket::stream mWebSocket; -}; - -} // namespace transports -} // namespace monitoring -} // namespace o2 - -#endif // ALICEO2_MONITORING_TRANSPORTS_WEBSOCKET_H diff --git a/src/UriParser/UriParser.h b/src/UriParser/UriParser.h deleted file mode 100644 index 75fea158b..000000000 --- a/src/UriParser/UriParser.h +++ /dev/null @@ -1,105 +0,0 @@ -/* -Copyright (c) 2013 Covenant Eyes - -Permission is hereby granted, free of charge, to any person obtaining a copy of this -software and associated documentation files (the "Software"), to deal in the Software -without restriction, including without limitation the rights to use, copy, modify, -merge, publish, distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice shall be included in all copies -or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, -INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -*/ - -#ifndef ALICEO2_HTTPPARSER_H -#define ALICEO2_HTTPPARSER_H - -#include -#include -#include - -namespace http -{ -struct url { - std::string protocol, user, password, host, path, search, url; - int port; -}; - -//--- Helper Functions -------------------------------------------------------------~ -static inline std::string TailSlice(std::string& subject, std::string delimiter, bool keep_delim = false) -{ - // Chops off the delimiter and everything that follows (destructively) - // returns everything after the delimiter - auto delimiter_location = subject.find(delimiter); - auto delimiter_length = delimiter.length(); - std::string output = ""; - - if (delimiter_location < std::string::npos) { - auto start = keep_delim ? delimiter_location : delimiter_location + delimiter_length; - auto end = subject.length() - start; - output = subject.substr(start, end); - subject = subject.substr(0, delimiter_location); - } - return output; -} - -static inline std::string HeadSlice(std::string& subject, std::string delimiter) -{ - // Chops off the delimiter and everything that precedes (destructively) - // returns everthing before the delimeter - auto delimiter_location = subject.find(delimiter); - auto delimiter_length = delimiter.length(); - std::string output = ""; - if (delimiter_location < std::string::npos) { - output = subject.substr(0, delimiter_location); - subject = subject.substr(delimiter_location + delimiter_length, subject.length() - (delimiter_location + delimiter_length)); - } - return output; -} - -//--- Extractors -------------------------------------------------------------------~ -static inline int ExtractPort(std::string& hostport) -{ - int port; - std::string portstring = TailSlice(hostport, ":"); - try { - port = atoi(portstring.c_str()); - } catch (std::exception& e) { - port = -1; - } - return port; -} - -static inline std::string ExtractPath(std::string& in) { return TailSlice(in, "/", true); } -static inline std::string ExtractProtocol(std::string& in) { return HeadSlice(in, "://"); } -static inline std::string ExtractSearch(std::string& in) { return TailSlice(in, "?"); } -static inline std::string ExtractPassword(std::string& userpass) { return TailSlice(userpass, ":"); } -static inline std::string ExtractUserpass(std::string& in) { return HeadSlice(in, "@"); } - -//--- Public Interface -------------------------------------------------------------~ -static inline url ParseHttpUrl(std::string& in) -{ - url ret; - ret.port = -1; - ret.url = in; - ret.protocol = ExtractProtocol(in); - ret.search = ExtractSearch(in); - ret.path = ExtractPath(in); - std::string userpass = ExtractUserpass(in); - ret.password = ExtractPassword(userpass); - ret.user = userpass; - ret.port = ExtractPort(in); - ret.host = in; - - return ret; -} -} // namespace http -#endif diff --git a/src/VariantVisitorAdd.h b/src/VariantVisitorAdd.h deleted file mode 100644 index 8b233b248..000000000 --- a/src/VariantVisitorAdd.h +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -#include -#include "Exceptions/MonitoringException.h" - -namespace o2 -{ -// ALICE O2 Monitoring system -namespace monitoring -{ -/// \brief Adds boost variants -class VariantVisitorAdd -{ - public: - /// Overloads operator() that sums numeric values - template < - typename T, - typename = typename std::enable_if::value, T>::type> - std::variant operator()(const T& a, const T& b) const - { - return a + b; - } - - /// If arguments have different type an exception is raised - /// \throws MonitoringException - template - std::variant operator()(const T&, const U&) const - { - throw MonitoringException("DerivedMetrics/Visitor", "Cannot operate on different or non-numeric types"); - } -}; - -} // namespace monitoring -} // namespace o2 diff --git a/src/VariantVisitorRate.h b/src/VariantVisitorRate.h deleted file mode 100644 index d2f83790c..000000000 --- a/src/VariantVisitorRate.h +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -namespace o2 -{ -// ALICE O2 Monitoring system -namespace monitoring -{ -/// \brief Subtracts boost variants in order to calculate rate -class VariantVisitorRate -{ - private: - /// Timestamp difference in milliseconds - int timestampCount; - - public: - /// Creates variant visitor functor - /// \param count timestamp difference in milliseconds - VariantVisitorRate(int count) : timestampCount(count) - { - } - - /// Calculates rate only when two arguments of the same type are passed - /// \return calculated rate in Hz - template < - typename T, - typename = typename std::enable_if::value, T>::type> - double operator()(const T& a, const T& b) const - { - return (1000 * (static_cast(a) - b)) / timestampCount; - } - - /// If arguments have different type an exception is raised - /// \throws MonitoringException - template - double operator()(const T&, const U&) const - { - throw MonitoringException("DerivedMetrics/Visitor", "Cannot operate on different or non-numeric types"); - } -}; - -} // namespace monitoring -} // namespace o2 diff --git a/src/sendMetric.cxx b/src/sendMetric.cxx deleted file mode 100644 index 345e0bdb9..000000000 --- a/src/sendMetric.cxx +++ /dev/null @@ -1,131 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -// simple command-line program used to send metrics using the monitoring lib - -#include -#include -#include -#include -using namespace o2::monitoring; - -void print_usage() -{ - printf("Monitoring command line utility to inject metrics.\n"); - printf("Usage: o2-monitoring-send [options]\n"); - printf("Options: \n"); - printf(" -u ... Set monitoring URI (for metric output).\n"); - printf(" -m ... Set metric name.\n"); - printf(" -i ... Set metric value (int).\n"); - printf(" -v Verbose mode.\n"); - printf(" -h This help.\n"); - printf("\nExample: o2-monitoring-send -u influxdb-stdout:// -m test.metric -i 12345\n"); -} - -int main(int argc, char** argv) -{ - - bool verbose = false; // if set, prints detailed messages - - std::unique_ptr monitoringCollector; - int option; - - bool isOk = true; - const char* monitoringURI = nullptr; - const char* monitoringValue = nullptr; - const char* monitoringMetric = nullptr; - - // read options - while ((option = getopt(argc, argv, "hvu:i:m:")) != -1) { - switch (option) { - - case 'u': { - monitoringURI = optarg; - } break; - - case 'i': { - monitoringValue = optarg; - } break; - - case 'm': { - monitoringMetric = optarg; - } break; - - case 'v': { - verbose = true; - } break; - - case 'h': - print_usage(); - return 0; - - default: - print_usage(); - return -1; - } - } - - if (monitoringURI == nullptr) { - printf("Unspecified monitoring URI.\n"); - isOk = false; - } - - if (monitoringMetric == nullptr) { - printf("Unspecified monitoring metric.\n"); - isOk = false; - } - - if (monitoringValue == nullptr) { - printf("Unspecified monitoring value.\n"); - isOk = false; - } - - if (!isOk) { - printf("Failed to send metric: bad parameters.\n\n\n"); - print_usage(); - return -1; - } - - // conversions - int monitoringValueI = atoi(monitoringValue); - - // disable logs from monitoring lib - setenv("O2_INFOLOGGER_MODE", "none", 1); - - if (verbose) { - // summarize status - printf("URI = %s\n", monitoringURI); - printf("Metric = %s\n", monitoringMetric); - printf("Value = %d (int)\n", monitoringValueI); - printf("\n"); - } - - isOk = false; - try { - monitoringCollector = MonitoringFactory::Get(monitoringURI); - monitoringCollector->send({monitoringValueI, monitoringMetric}); - isOk = true; - } catch (const std::exception& exc) { - printf("Exception: %s\n", exc.what()); - } catch (...) { - printf("Undefined exception\n"); - } - - if (!isOk) { - printf("Failed to send metric\n"); - return -1; - } - - if (verbose) { - printf("\nSuccess\n"); - } - return 0; -} diff --git a/structhttp_1_1url-members.html b/structhttp_1_1url-members.html new file mode 100644 index 000000000..b5d096f7f --- /dev/null +++ b/structhttp_1_1url-members.html @@ -0,0 +1,138 @@ + + + + + + +Monitoring: Member List + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
http::url Member List
+
+
+ +

This is the complete list of members for http::url, including all inherited members.

+ + + + + + + + + +
host (defined in http::url)http::url
password (defined in http::url)http::url
path (defined in http::url)http::url
port (defined in http::url)http::url
protocol (defined in http::url)http::url
search (defined in http::url)http::url
url (defined in http::url)http::url
user (defined in http::url)http::url
+
+ + + + diff --git a/structhttp_1_1url.html b/structhttp_1_1url.html new file mode 100644 index 000000000..c714eb378 --- /dev/null +++ b/structhttp_1_1url.html @@ -0,0 +1,168 @@ + + + + + + +Monitoring: http::url Struct Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
http::url Struct Reference
+
+
+
+Collaboration diagram for http::url:
+
+
+
+
+ + + + + + + + + + + + + + + + + + +

+Public Attributes

+std::string protocol
 
+std::string user
 
+std::string password
 
+std::string host
 
+std::string path
 
+std::string search
 
+std::string url
 
+int port
 
+
The documentation for this struct was generated from the following file:
    +
  • /home/travis/build/AliceO2Group/Monitoring/src/UriParser/UriParser.h
  • +
+
+
+ + + + diff --git a/structhttp_1_1url.js b/structhttp_1_1url.js new file mode 100644 index 000000000..75fa06290 --- /dev/null +++ b/structhttp_1_1url.js @@ -0,0 +1,11 @@ +var structhttp_1_1url = +[ + [ "host", "structhttp_1_1url.html#afd78fea137488e647cd8423ae29b5f1e", null ], + [ "password", "structhttp_1_1url.html#ae27e425a13d21b5aa9a3663b746ef2fb", null ], + [ "path", "structhttp_1_1url.html#a33cefe045b9268db92b0cff6c6bb43c1", null ], + [ "port", "structhttp_1_1url.html#a051fbe43be75dd488424b0ea46e72439", null ], + [ "protocol", "structhttp_1_1url.html#a67ebf4c624c5033f37e4006b0452f875", null ], + [ "search", "structhttp_1_1url.html#ace782658b03ce413699f704a1c04ea0c", null ], + [ "url", "structhttp_1_1url.html#a3bacd867d5a89bd0458782a5c2ed7ec3", null ], + [ "user", "structhttp_1_1url.html#aba19ced7680ec353f3486d366210ede5", null ] +]; \ No newline at end of file diff --git a/structhttp_1_1url__coll__graph.dot b/structhttp_1_1url__coll__graph.dot new file mode 100644 index 000000000..e0576b68f --- /dev/null +++ b/structhttp_1_1url__coll__graph.dot @@ -0,0 +1,12 @@ +digraph "http::url" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="{http::url\n||}",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node2 -> Node1 [color="grey25",fontsize="10",style="solid",label=" +port" ,arrowhead="odiamond",fontname="Helvetica"]; + Node2 [label="{int\n||}",height=0.2,width=0.4,color="grey75"]; + Node3 -> Node1 [color="grey25",fontsize="10",style="solid",label=" +url\n+host\n+search\n+user\n+password\n+protocol\n+path" ,arrowhead="odiamond",fontname="Helvetica"]; + Node3 [label="{string\n||}",height=0.2,width=0.4,color="grey75"]; +} diff --git a/structhttp_1_1url__coll__graph.map b/structhttp_1_1url__coll__graph.map new file mode 100644 index 000000000..1efd0a2fd --- /dev/null +++ b/structhttp_1_1url__coll__graph.map @@ -0,0 +1,2 @@ + + diff --git a/structhttp_1_1url__coll__graph.md5 b/structhttp_1_1url__coll__graph.md5 new file mode 100644 index 000000000..9aa9a1497 --- /dev/null +++ b/structhttp_1_1url__coll__graph.md5 @@ -0,0 +1 @@ +0a690cd98e6649feab66d684e8c78673 \ No newline at end of file diff --git a/structhttp_1_1url__coll__graph.svg b/structhttp_1_1url__coll__graph.svg new file mode 100644 index 000000000..d9848d041 --- /dev/null +++ b/structhttp_1_1url__coll__graph.svg @@ -0,0 +1,57 @@ + + + + + + +http::url + +Node1 + +http::url + + + + + + +Node2 + +int + + + + + + +Node2->Node1 + + + +port + + +Node3 + +string + + + + + + +Node3->Node1 + + + +url ++host ++search ++user ++password ++protocol ++path + + + diff --git a/structo2_1_1monitoring_1_1backends_1_1overloaded.html b/structo2_1_1monitoring_1_1backends_1_1overloaded.html new file mode 100644 index 000000000..4888d3f26 --- /dev/null +++ b/structo2_1_1monitoring_1_1backends_1_1overloaded.html @@ -0,0 +1,143 @@ + + + + + + +Monitoring: o2::monitoring::backends::overloaded< Ts > Struct Template Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
o2::monitoring::backends::overloaded< Ts > Struct Template Reference
+
+
+
+Inheritance diagram for o2::monitoring::backends::overloaded< Ts >:
+
+
+
+
+
+Collaboration diagram for o2::monitoring::backends::overloaded< Ts >:
+
+
+
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/structo2_1_1monitoring_1_1backends_1_1overloaded__coll__graph.dot b/structo2_1_1monitoring_1_1backends_1_1overloaded__coll__graph.dot new file mode 100644 index 000000000..8ef188a18 --- /dev/null +++ b/structo2_1_1monitoring_1_1backends_1_1overloaded__coll__graph.dot @@ -0,0 +1,12 @@ +digraph "o2::monitoring::backends::overloaded< Ts >" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="{o2::monitoring::backends\l::overloaded\< Ts \>\n||}",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; + Node2 [label="{Ts\n||}",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1backends_1_1Ts.html"]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; +} diff --git a/structo2_1_1monitoring_1_1backends_1_1overloaded__coll__graph.map b/structo2_1_1monitoring_1_1backends_1_1overloaded__coll__graph.map new file mode 100644 index 000000000..d4771eaab --- /dev/null +++ b/structo2_1_1monitoring_1_1backends_1_1overloaded__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/structo2_1_1monitoring_1_1backends_1_1overloaded__coll__graph.md5 b/structo2_1_1monitoring_1_1backends_1_1overloaded__coll__graph.md5 new file mode 100644 index 000000000..b1ffde424 --- /dev/null +++ b/structo2_1_1monitoring_1_1backends_1_1overloaded__coll__graph.md5 @@ -0,0 +1 @@ +54c0ee3031e6dfa52e3052d1dd4a920d \ No newline at end of file diff --git a/structo2_1_1monitoring_1_1backends_1_1overloaded__coll__graph.svg b/structo2_1_1monitoring_1_1backends_1_1overloaded__coll__graph.svg new file mode 100644 index 000000000..19d8e4864 --- /dev/null +++ b/structo2_1_1monitoring_1_1backends_1_1overloaded__coll__graph.svg @@ -0,0 +1,49 @@ + + + + + + +o2::monitoring::backends::overloaded< Ts > + +Node1 + +o2::monitoring::backends +::overloaded< Ts > + + + + + + +Node2 + + +Ts + + + + + + + + +Node2->Node1 + + + + +Node2->Node1 + + + + +Node2->Node1 + + + + + diff --git a/structo2_1_1monitoring_1_1backends_1_1overloaded__inherit__graph.dot b/structo2_1_1monitoring_1_1backends_1_1overloaded__inherit__graph.dot new file mode 100644 index 000000000..8ef188a18 --- /dev/null +++ b/structo2_1_1monitoring_1_1backends_1_1overloaded__inherit__graph.dot @@ -0,0 +1,12 @@ +digraph "o2::monitoring::backends::overloaded< Ts >" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="{o2::monitoring::backends\l::overloaded\< Ts \>\n||}",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; + Node2 [label="{Ts\n||}",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1backends_1_1Ts.html"]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; +} diff --git a/structo2_1_1monitoring_1_1backends_1_1overloaded__inherit__graph.map b/structo2_1_1monitoring_1_1backends_1_1overloaded__inherit__graph.map new file mode 100644 index 000000000..d4771eaab --- /dev/null +++ b/structo2_1_1monitoring_1_1backends_1_1overloaded__inherit__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/structo2_1_1monitoring_1_1backends_1_1overloaded__inherit__graph.md5 b/structo2_1_1monitoring_1_1backends_1_1overloaded__inherit__graph.md5 new file mode 100644 index 000000000..b1ffde424 --- /dev/null +++ b/structo2_1_1monitoring_1_1backends_1_1overloaded__inherit__graph.md5 @@ -0,0 +1 @@ +54c0ee3031e6dfa52e3052d1dd4a920d \ No newline at end of file diff --git a/structo2_1_1monitoring_1_1backends_1_1overloaded__inherit__graph.svg b/structo2_1_1monitoring_1_1backends_1_1overloaded__inherit__graph.svg new file mode 100644 index 000000000..19d8e4864 --- /dev/null +++ b/structo2_1_1monitoring_1_1backends_1_1overloaded__inherit__graph.svg @@ -0,0 +1,49 @@ + + + + + + +o2::monitoring::backends::overloaded< Ts > + +Node1 + +o2::monitoring::backends +::overloaded< Ts > + + + + + + +Node2 + + +Ts + + + + + + + + +Node2->Node1 + + + + +Node2->Node1 + + + + +Node2->Node1 + + + + + diff --git a/structoverloaded.html b/structoverloaded.html new file mode 100644 index 000000000..0f2bb6f85 --- /dev/null +++ b/structoverloaded.html @@ -0,0 +1,143 @@ + + + + + + +Monitoring: overloaded< Ts > Struct Template Reference + + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Monitoring +  3.3.4 +
+
O2 Monitoring library
+
+
+ + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
overloaded< Ts > Struct Template Reference
+
+
+
+Inheritance diagram for overloaded< Ts >:
+
+
+
+
+
+Collaboration diagram for overloaded< Ts >:
+
+
+
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/structoverloaded__coll__graph.dot b/structoverloaded__coll__graph.dot new file mode 100644 index 000000000..b80fb51ad --- /dev/null +++ b/structoverloaded__coll__graph.dot @@ -0,0 +1,10 @@ +digraph "overloaded< Ts >" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="{overloaded\< Ts \>\n||}",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; + Node2 [label="{Ts\n||}",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1backends_1_1Ts.html"]; +} diff --git a/structoverloaded__coll__graph.map b/structoverloaded__coll__graph.map new file mode 100644 index 000000000..bc13a6783 --- /dev/null +++ b/structoverloaded__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/structoverloaded__coll__graph.md5 b/structoverloaded__coll__graph.md5 new file mode 100644 index 000000000..ec33bf8d0 --- /dev/null +++ b/structoverloaded__coll__graph.md5 @@ -0,0 +1 @@ +852abb40b5ef502c4f670d68954dc162 \ No newline at end of file diff --git a/structoverloaded__coll__graph.svg b/structoverloaded__coll__graph.svg new file mode 100644 index 000000000..bbcc34a41 --- /dev/null +++ b/structoverloaded__coll__graph.svg @@ -0,0 +1,38 @@ + + + + + + +overloaded< Ts > + +Node1 + +overloaded< Ts > + + + + + + +Node2 + + +Ts + + + + + + + + +Node2->Node1 + + + + + diff --git a/structoverloaded__inherit__graph.dot b/structoverloaded__inherit__graph.dot new file mode 100644 index 000000000..b80fb51ad --- /dev/null +++ b/structoverloaded__inherit__graph.dot @@ -0,0 +1,10 @@ +digraph "overloaded< Ts >" +{ + // INTERACTIVE_SVG=YES + bgcolor="transparent"; + edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"]; + node [fontname="Helvetica",fontsize="10",shape=record]; + Node1 [label="{overloaded\< Ts \>\n||}",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black"]; + Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",arrowtail="onormal",fontname="Helvetica"]; + Node2 [label="{Ts\n||}",height=0.2,width=0.4,color="black",URL="$classo2_1_1monitoring_1_1backends_1_1Ts.html"]; +} diff --git a/structoverloaded__inherit__graph.map b/structoverloaded__inherit__graph.map new file mode 100644 index 000000000..bc13a6783 --- /dev/null +++ b/structoverloaded__inherit__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/structoverloaded__inherit__graph.md5 b/structoverloaded__inherit__graph.md5 new file mode 100644 index 000000000..ec33bf8d0 --- /dev/null +++ b/structoverloaded__inherit__graph.md5 @@ -0,0 +1 @@ +852abb40b5ef502c4f670d68954dc162 \ No newline at end of file diff --git a/structoverloaded__inherit__graph.svg b/structoverloaded__inherit__graph.svg new file mode 100644 index 000000000..bbcc34a41 --- /dev/null +++ b/structoverloaded__inherit__graph.svg @@ -0,0 +1,38 @@ + + + + + + +overloaded< Ts > + +Node1 + +overloaded< Ts > + + + + + + +Node2 + + +Ts + + + + + + + + +Node2->Node1 + + + + + diff --git a/svgpan.js b/svgpan.js new file mode 100644 index 000000000..4218e79be --- /dev/null +++ b/svgpan.js @@ -0,0 +1,319 @@ +/** + * The code below is based on SVGPan Library 1.2 and was modified for doxygen + * to support both zooming and panning via the mouse and via embedded bottons. + * + * This code is licensed under the following BSD license: + * + * Copyright 2009-2010 Andrea Leofreddi . All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY Andrea Leofreddi ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Andrea Leofreddi OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of Andrea Leofreddi. + */ + +var root = document.documentElement; +var state = 'none'; +var stateOrigin; +var stateTf = root.createSVGMatrix(); +var cursorGrab = ' url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAMAAAAolt3jAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAlQTFRFAAAA////////c3ilYwAAAAN0Uk5T//8A18oNQQAAAD1JREFUeNp0zlEKACAIA9Bt9z90bZBZkQj29qFBEuBOzQHSnWTTyckEfqUuZgFvslH4ch3qLCO/Kr8cAgwATw4Ax6XRCcoAAAAASUVORK5CYII="), move'; +var zoomSteps = 10; +var zoomInFactor; +var zoomOutFactor; +var windowWidth; +var windowHeight; +var svgDoc; +var minZoom; +var maxZoom; +if (!window) window=this; + +/** + * Show the graph in the middle of the view, scaled to fit + */ +function show() +{ + if (window.innerHeight) // Firefox + { + windowWidth = window.innerWidth; + windowHeight = window.innerHeight; + } + else if (document.documentElement.clientWidth) // Chrome/Safari + { + windowWidth = document.documentElement.clientWidth + windowHeight = document.documentElement.clientHeight + } + if (!windowWidth || !windowHeight) // failsafe + { + windowWidth = 800; + windowHeight = 600; + } + minZoom = Math.min(Math.min(viewHeight,windowHeight)/viewHeight,Math.min(viewWidth,windowWidth)/viewWidth); + maxZoom = minZoom+1.5; + zoomInFactor = Math.pow(maxZoom/minZoom,1.0/zoomSteps); + zoomOutFactor = 1.0/zoomInFactor; + + var g = svgDoc.getElementById('viewport'); + try + { + var bb = g.getBBox(); // this can throw an exception if css { display: none } + var tx = (windowWidth-viewWidth*minZoom+8)/(2*minZoom); + var ty = viewHeight+(windowHeight-viewHeight*minZoom)/(2*minZoom); + var a = 'scale('+minZoom+') rotate(0) translate('+tx+' '+ty+')'; + g.setAttribute('transform',a); + } + catch(e) {} +} + +/** + * Register handlers + */ +function init(evt) +{ + svgDoc = evt.target.ownerDocument; + if (top.window && top.window.registerShow) // register show function in html doc for dynamic sections + { + top.window.registerShow(sectionId,show); + } + show(); + + setAttributes(root, { + "onmousedown" : "handleMouseDown(evt)", + "onmousemove" : "handleMouseMove(evt)", + "onmouseup" : "handleMouseUp(evt)" + }); + + if (window.addEventListener) + { + if (navigator.userAgent.toLowerCase().indexOf('webkit') >= 0 || + navigator.userAgent.toLowerCase().indexOf("opera") >= 0 || + navigator.appVersion.indexOf("MSIE") != -1) + { + window.addEventListener('mousewheel', handleMouseWheel, false); // Chrome/Safari/IE9 + } + else + { + window.addEventListener('DOMMouseScroll', handleMouseWheel, false); // Others + } + } +} + +window.onresize=function() +{ + if (svgDoc) { show(); } +} + +/** + * Instance an SVGPoint object with given event coordinates. + */ +function getEventPoint(evt) +{ + var p = root.createSVGPoint(); + p.x = evt.clientX; + p.y = evt.clientY; + return p; +} + +/** + * Sets the current transform matrix of an element. + */ +function setCTM(element, matrix) +{ + var s = "matrix(" + matrix.a + "," + matrix.b + "," + matrix.c + "," + matrix.d + "," + matrix.e + "," + matrix.f + ")"; + element.setAttribute("transform", s); +} + +/** + * Sets attributes of an element. + */ +function setAttributes(element, attributes) +{ + for (i in attributes) + element.setAttributeNS(null, i, attributes[i]); +} + +function doZoom(g,point,zoomFactor) +{ + var p = point.matrixTransform(g.getCTM().inverse()); + var k = root.createSVGMatrix().translate(p.x, p.y).scale(zoomFactor).translate(-p.x, -p.y); + var n = g.getCTM().multiply(k); + var s = Math.max(n.a,n.d); + if (s>maxZoom) n=n.translate(p.x,p.y).scale(maxZoom/s).translate(-p.x,-p.y); + else if (s'); + d.write('Print SVG'); + d.write(''); + d.write('
'+xs+'
'); + d.write(''); + d.write(''); + d.close(); + } catch(e) { + alert('Failed to open popup window needed for printing!\n'+e.message); + } +} + + + + diff --git a/sync_off.png b/sync_off.png new file mode 100644 index 000000000..3b443fc62 Binary files /dev/null and b/sync_off.png differ diff --git a/sync_on.png b/sync_on.png new file mode 100644 index 000000000..e08320fb6 Binary files /dev/null and b/sync_on.png differ diff --git a/tab_a.png b/tab_a.png new file mode 100644 index 000000000..3b725c41c Binary files /dev/null and b/tab_a.png differ diff --git a/tab_b.png b/tab_b.png new file mode 100644 index 000000000..e2b4a8638 Binary files /dev/null and b/tab_b.png differ diff --git a/tab_h.png b/tab_h.png new file mode 100644 index 000000000..fd5cb7054 Binary files /dev/null and b/tab_h.png differ diff --git a/tab_s.png b/tab_s.png new file mode 100644 index 000000000..ab478c95b Binary files /dev/null and b/tab_s.png differ diff --git a/tabs.css b/tabs.css new file mode 100644 index 000000000..9cf578f23 --- /dev/null +++ b/tabs.css @@ -0,0 +1,60 @@ +.tabs, .tabs2, .tabs3 { + background-image: url('tab_b.png'); + width: 100%; + z-index: 101; + font-size: 13px; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +} + +.tabs2 { + font-size: 10px; +} +.tabs3 { + font-size: 9px; +} + +.tablist { + margin: 0; + padding: 0; + display: table; +} + +.tablist li { + float: left; + display: table-cell; + background-image: url('tab_b.png'); + line-height: 36px; + list-style: none; +} + +.tablist a { + display: block; + padding: 0 20px; + font-weight: bold; + background-image:url('tab_s.png'); + background-repeat:no-repeat; + background-position:right; + color: #283A5D; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; + outline: none; +} + +.tabs3 .tablist a { + padding: 0 10px; +} + +.tablist a:hover { + background-image: url('tab_h.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); + text-decoration: none; +} + +.tablist li.current a { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} diff --git a/test/ApMon.conf b/test/ApMon.conf deleted file mode 100644 index 663fa0919..000000000 --- a/test/ApMon.conf +++ /dev/null @@ -1,16 +0,0 @@ -# the desired logging level (the possible values are FATAL, WARNING, INFO, FINE, DEBUG -xApMon_loglevel = FATAL - -# the destination hosts -#panther.rogrid.pub.ro:8884 -aido2mon-gpn.cern.ch:8884 - -# the configuration file will be checked for changes every 300s -xApMon_conf_recheck = on -xApMon_recheck_interval = 300 - -# the maximum number of messages that can be sent per second -xApMon_maxMsgRate = 100 - -# enable process monitoring -xApMon_job_monitoring = off diff --git a/test/testDerived.cxx b/test/testDerived.cxx deleted file mode 100644 index 16037ce10..000000000 --- a/test/testDerived.cxx +++ /dev/null @@ -1,295 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -#include "Monitoring/DerivedMetrics.h" -#include "../src/Exceptions/MonitoringException.h" -#include "../src/VariantVisitorAdd.h" -#include "../src/VariantVisitorRate.h" -#include -#include -#include - -#define BOOST_TEST_MODULE Monitoring DerivedMetrics -#define BOOST_TEST_DYN_LINK -#include - -namespace o2 -{ -namespace monitoring -{ -namespace Test -{ - -using namespace o2::monitoring; - -struct ResultsKv { - unsigned short int value; - unsigned short int result; -}; - -BOOST_AUTO_TEST_CASE(testDerivedRateForInts) -{ - auto timestamp = std::chrono::system_clock::now(); - std::vector valResKv = {{10, 0}, {20, 10}, {30, 10}, {50, 20}, {60, 10}, {65, 5}, {70, 5}, {80, 10}, {90, 10}}; - DerivedMetrics derivedHandler; - std::string name("metricInt"); - - for (auto const valRes : valResKv) { - try { - Metric metric(name, Metric::DefaultVerbosity, timestamp); - metric.addValue(valRes.value, "value"); - derivedHandler.process(metric, DerivedMetricMode::RATE); - BOOST_CHECK_EQUAL(metric.getName(), "metricInt"); - BOOST_CHECK_EQUAL(metric.getValues().back().first, "value_rate"); - BOOST_CHECK_EQUAL(std::get(metric.getValues().back().second), valRes.result); - timestamp += std::chrono::seconds(1); - } catch (MonitoringException& e) { - BOOST_CHECK_EQUAL(e.what(), std::string("Not enough values")); - } - } -} - -BOOST_AUTO_TEST_CASE(testDerivedRateForIntsAndResetValue) -{ - std::vector valResKv = {{10, 0}, {20, 10}, {30, 10}, {50, 20}, {0, 0}, {10, 10}, {20, 10}, {30, 10}, {50, 20}}; - DerivedMetrics derivedHandler; - std::string name("metricInt"); - auto timestamp = std::chrono::system_clock::now(); - - for (auto const valRes : valResKv) { - try { - Metric metric(name, Metric::DefaultVerbosity, timestamp); - metric.addValue(valRes.value, "value"); - derivedHandler.process(metric, DerivedMetricMode::RATE); - BOOST_CHECK_EQUAL(metric.getName(), "metricInt"); - BOOST_CHECK_EQUAL(metric.getValues().back().first, "value_rate"); - BOOST_CHECK_EQUAL(std::get(metric.getValues().back().second), valRes.result); - timestamp += std::chrono::seconds(1); - } catch (MonitoringException& e) { - BOOST_CHECK_EQUAL(e.what(), std::string("Not enough values")); - } - } -} - -struct ResultsKvDouble { - double value; - double result; -}; - -BOOST_AUTO_TEST_CASE(testDerivedRateForDoubles) -{ - std::vector valResKv = {{1.2, 0}, {11.2, 10}, {21.2, 10}, {41.2, 20}, {51.2, 10}, {61, 9.8}}; - o2::monitoring::DerivedMetrics derivedHandler; - std::string name("metricDouble"); - auto timestamp = std::chrono::system_clock::now(); - - for (auto const valRes : valResKv) { - try { - Metric metric(name, Metric::DefaultVerbosity, timestamp); - metric.addValue(valRes.value, "value"); - derivedHandler.process(metric, DerivedMetricMode::RATE); - BOOST_CHECK_EQUAL(metric.getName(), "metricDouble"); - BOOST_CHECK_CLOSE(std::get(metric.getValues().back().second), valRes.result, 0.1); - BOOST_CHECK_EQUAL(metric.getValues().back().first, "value_rate"); - timestamp += std::chrono::seconds(1); - } catch (MonitoringException& e) { - BOOST_CHECK_EQUAL(e.what(), std::string("Not enough values")); - } - } -} - -BOOST_AUTO_TEST_CASE(testDerivedRateForDoublesWhenUsingTags) -{ - std::vector valResKv1 = {{1.2, 0}, {11.2, 10}, {21.2, 10}, {41.2, 20}, {51.2, 10}, {61, 9.8}}; - std::vector valResKv2 = {{0.5, 0}, {5.5, 5}, {10.5, 5}, {20.5, 10}, {40.5, 20}, {45.5, 5}}; - o2::monitoring::DerivedMetrics derivedHandler; - std::string name("metricDouble"); - auto timestamp = std::chrono::system_clock::now(); - - for (std::size_t i = 0; i < valResKv1.size(); i++) { - try { - Metric metric1(name, Metric::DefaultVerbosity, timestamp); - metric1.addValue(valResKv1[i].value, "value"); - - Metric metric2(name, Metric::DefaultVerbosity, timestamp); - metric2.addValue(valResKv2[i].value, "value"); - metric2.addTag(o2::monitoring::tags::Key::Subsystem, o2::monitoring::tags::Value::Readout); - - derivedHandler.process(metric1, DerivedMetricMode::RATE); - derivedHandler.process(metric2, DerivedMetricMode::RATE); - - BOOST_CHECK_CLOSE(std::get(metric1.getValues().back().second), valResKv1[i].result, 0.1); - BOOST_CHECK_CLOSE(std::get(metric2.getValues().back().second), valResKv2[i].result, 0.1); - timestamp += std::chrono::seconds(1); - } catch (MonitoringException& e) { - BOOST_CHECK_EQUAL(e.what(), std::string("Not enough values")); - } - } -} - -struct ResultsKvUint64_t { - uint64_t value; - uint64_t result; -}; - -BOOST_AUTO_TEST_CASE(testDerivedRateForUint64_t) -{ - std::vector valResKv = {{165535, 0}, {165545, 10}, {165555, 10}, {165575, 20}, {165585, 10}, {165590, 5}}; - DerivedMetrics derivedHandler; - std::string name("metricUint64_t"); - auto timestamp = std::chrono::system_clock::now(); - - for (auto const valRes : valResKv) { - try { - Metric metric(name, Metric::DefaultVerbosity, timestamp); - metric.addValue(valRes.value, "value"); - derivedHandler.process(metric, DerivedMetricMode::RATE); - BOOST_CHECK_EQUAL(metric.getName(), "metricUint64_t"); - BOOST_CHECK_EQUAL(metric.getValues().back().first, "value_rate"); - BOOST_CHECK_EQUAL(std::get(metric.getValues().back().second), valRes.result); - timestamp += std::chrono::seconds(1); - } catch (MonitoringException& e) { - BOOST_CHECK_EQUAL(e.what(), std::string("Not enough values")); - } - } -} - -bool exceptionCheck(const MonitoringException& e) -{ - if (e.what() == std::string("Not enough values")) - return true; - if (std::string(e.what()).find("Division by 0") != std::string::npos) - return true; - return false; -} - -/*BOOST_AUTO_TEST_CASE(divisionByZero) -{ - std::string name("test"); - o2::monitoring::DerivedMetrics derivedHandler; - o2::monitoring::Metric metric(10, name); - - derivedHandler.process(metric, DerivedMetricMode::RATE); - BOOST_CHECK_EXCEPTION(derivedHandler.process(metric, DerivedMetricMode::RATE), MonitoringException, exceptionCheck); -}*/ - -BOOST_AUTO_TEST_CASE(derivedIncrementInt) -{ - std::vector results = {{10, 10}, {20, 30}, {30, 60}, {50, 110}, {60, 170}, {65, 235}, {70, 305}, {80, 385}, {90, 475}, {100, 575}}; - DerivedMetrics derivedHandler; - std::string name("metricInt"); - for (auto const result : results) { - Metric metric(result.value, name); - derivedHandler.process(metric, DerivedMetricMode::INCREMENT); - BOOST_CHECK_EQUAL(std::get(metric.getValues().back().second), result.result); - BOOST_CHECK_EQUAL(metric.getValues().back().first, "value_increment"); - } -} - -BOOST_AUTO_TEST_CASE(derivedIncrementUint64_t) -{ - std::vector results = {{5, 5}, {165535, 165540}, {15, 165555}, {50, 165605}, {165590, 331195}}; - DerivedMetrics derivedHandler; - std::string name("metricUint64_t"); - for (auto const result : results) { - Metric metric(result.value, name); - derivedHandler.process(metric, DerivedMetricMode::INCREMENT); - BOOST_CHECK_EQUAL(std::get(metric.getValues().back().second), result.result); - BOOST_CHECK_EQUAL(metric.getValues().back().first, "value_increment"); - } -} - -BOOST_AUTO_TEST_CASE(derivedIncrementDouble) -{ - std::vector results = {{1.2, 1.2}, {11.2, 12.4}, {21.2, 33.6}, {41.2, 74.8}, {51.2, 126}, {61, 187}}; - DerivedMetrics derivedHandler; - std::string name("metricDouble"); - for (auto const result : results) { - Metric metric(result.value, name); - derivedHandler.process(metric, DerivedMetricMode::INCREMENT); - BOOST_CHECK_CLOSE(std::get(metric.getValues().back().second), result.result, 0.01); - BOOST_CHECK_EQUAL(metric.getValues().back().first, "value_increment"); - } -} - -BOOST_AUTO_TEST_CASE(suppressSimple) -{ - DerivedMetrics derivedHandler; - Metric m1{3, "metricInt"}; - BOOST_CHECK(derivedHandler.process(m1, DerivedMetricMode::SUPPRESS)); - Metric m2{3, "metricInt"}; - BOOST_CHECK(!derivedHandler.process(m2, DerivedMetricMode::SUPPRESS)); - Metric m3{4, "metricInt"}; - BOOST_CHECK(derivedHandler.process(m3, DerivedMetricMode::SUPPRESS)); - Metric m4{4, "metricInt"}; - BOOST_CHECK(!derivedHandler.process(m4, DerivedMetricMode::SUPPRESS)); -} - -BOOST_AUTO_TEST_CASE(suppressTag) -{ - DerivedMetrics derivedHandler; - Metric metric{3, "metricInt"}; - metric.addTag(o2::monitoring::tags::Key::Subsystem, o2::monitoring::tags::Value::Readout); - Metric metric2{3, "metricInt"}; - metric2.addTag(o2::monitoring::tags::Key::Subsystem, o2::monitoring::tags::Value::DPL); - BOOST_CHECK(derivedHandler.process(metric, DerivedMetricMode::SUPPRESS)); - BOOST_CHECK(derivedHandler.process(metric2, DerivedMetricMode::SUPPRESS)); - BOOST_CHECK(!derivedHandler.process(metric, DerivedMetricMode::SUPPRESS)); - BOOST_CHECK(!derivedHandler.process(metric, DerivedMetricMode::SUPPRESS)); -} - -BOOST_AUTO_TEST_CASE(suppressTimeout) -{ - - DerivedMetrics::mSuppressTimeout = std::chrono::seconds(200); - DerivedMetrics derivedHandler; - Metric m1{3, "metricInt"}; - BOOST_CHECK(derivedHandler.process(m1, DerivedMetricMode::SUPPRESS)); - - auto timestamp = std::chrono::system_clock::now(); - timestamp += std::chrono::seconds(150); - Metric m2("metricInt", Metric::DefaultVerbosity, timestamp); - m2.addValue(3, "value"); - BOOST_CHECK(!derivedHandler.process(m2, DerivedMetricMode::SUPPRESS)); - - timestamp += std::chrono::seconds(60); - Metric m3("metricInt", Metric::DefaultVerbosity, timestamp); - m3.addValue(3, "value"); - BOOST_CHECK(derivedHandler.process(m3, DerivedMetricMode::SUPPRESS)); - - timestamp += std::chrono::seconds(60); - Metric m4("metricInt", Metric::DefaultVerbosity, timestamp); - m4.addValue(3, "value"); - BOOST_CHECK(!derivedHandler.process(m4, DerivedMetricMode::SUPPRESS)); - - Metric m5("metricInt", Metric::DefaultVerbosity, timestamp); - m5.addValue(4, "value"); - BOOST_CHECK(derivedHandler.process(m5, DerivedMetricMode::SUPPRESS)); -} - -BOOST_AUTO_TEST_CASE(testBoostVisitor) -{ - { - std::variant a = 10; - std::variant b = 11; - auto value = std::visit(VariantVisitorAdd{}, a, b); - } - { - std::variant a = 10; - std::variant b = 10.10; - BOOST_CHECK_THROW(std::visit(VariantVisitorAdd{}, a, b), o2::monitoring::MonitoringException); - BOOST_CHECK_THROW(std::visit(VariantVisitorRate(1000), a, b), o2::monitoring::MonitoringException); - } -} - -} // namespace Test -} // namespace monitoring -} // namespace o2 diff --git a/test/testMetric.cxx b/test/testMetric.cxx deleted file mode 100644 index f9023ef72..000000000 --- a/test/testMetric.cxx +++ /dev/null @@ -1,192 +0,0 @@ -#include "../include/Monitoring/Metric.h" -#include - -#define BOOST_TEST_MODULE Test Monitoring Metric -#define BOOST_TEST_DYN_LINK -#include - -namespace o2 -{ -namespace monitoring -{ -namespace Test -{ - -using namespace o2::monitoring; - -BOOST_AUTO_TEST_CASE(retrieveOtherParams) -{ - int value = 10; - Metric metricInstance(value, "metric name"); - BOOST_CHECK_EQUAL(metricInstance.getName(), "metric name"); -} - -BOOST_AUTO_TEST_CASE(constCharName) -{ - const char* name = "a name"; - Metric metricInstance(10, name); - BOOST_CHECK_EQUAL(metricInstance.getName(), "a name"); - BOOST_CHECK_EQUAL(metricInstance.getFirstValue().first, "value"); - Metric metricInstance2("metric name"); - metricInstance2.addValue(10, name); - BOOST_CHECK_EQUAL(metricInstance2.getName(), "metric name"); - BOOST_CHECK_EQUAL(metricInstance2.getFirstValue().first, "a name"); -} - -BOOST_AUTO_TEST_CASE(retrieveInt) -{ - int value = 10; - std::string name("metric name"); - Metric metricInstance(value, name); - - BOOST_CHECK_EQUAL(std::get(metricInstance.getFirstValue().second), 10); - BOOST_CHECK_EQUAL(metricInstance.getFirstValue().first, "value"); - BOOST_CHECK(std::holds_alternative(metricInstance.getFirstValue().second)); -} - -BOOST_AUTO_TEST_CASE(retrieveDouble) -{ - double value = 1.11; - double value2 = 2.22; - std::string name("metric name"); - Metric metricInstance(value, name); - BOOST_CHECK_EQUAL(std::get(metricInstance.getFirstValue().second), 1.11); - BOOST_CHECK_EQUAL(metricInstance.getFirstValue().first, "value"); - BOOST_CHECK(std::holds_alternative(metricInstance.getFirstValue().second)); - metricInstance.addValue(value2, "double"); - BOOST_CHECK_EQUAL(metricInstance.getValues().back().first, "double"); - BOOST_CHECK(std::holds_alternative(metricInstance.getValues().back().second)); - BOOST_CHECK_EQUAL(std::get(metricInstance.getValues().back().second), 2.22); -} - -BOOST_AUTO_TEST_CASE(retrieveString) -{ - std::string value = "testString"; - std::string value2 = "testString2"; - std::string name("metric name"); - Metric metricInstance(value, name); - - BOOST_CHECK_EQUAL(std::get(metricInstance.getFirstValue().second), "testString"); - BOOST_CHECK_EQUAL(metricInstance.getFirstValue().first, "value"); - BOOST_CHECK(std::holds_alternative(metricInstance.getFirstValue().second)); - metricInstance.addValue(value2, "string"); - BOOST_CHECK_EQUAL(metricInstance.getValues().back().first, "string"); - BOOST_CHECK(std::holds_alternative(metricInstance.getValues().back().second)); - BOOST_CHECK_EQUAL(std::get(metricInstance.getValues().back().second), "testString2"); -} - -BOOST_AUTO_TEST_CASE(retrieveUnsignedLongLong) -{ - uint64_t value = 10000000000000LL; - uint64_t value2 = 10000000000001LL; - std::string name("metric name"); - Metric metricInstance(value, name); - BOOST_CHECK_EQUAL(std::get(metricInstance.getFirstValue().second), 10000000000000LL); - BOOST_CHECK_EQUAL(metricInstance.getFirstValue().first, "value"); - BOOST_CHECK(std::holds_alternative(metricInstance.getFirstValue().second)); - metricInstance.addValue(value2, "uint64_t"); - BOOST_CHECK_EQUAL(metricInstance.getValues().back().first, "uint64_t"); - BOOST_CHECK(std::holds_alternative(metricInstance.getValues().back().second)); - BOOST_CHECK_EQUAL(std::get(metricInstance.getValues().back().second), 10000000000001LL); -} - -bool is_critical(const std::bad_variant_access&) { return true; } - -BOOST_AUTO_TEST_CASE(retrieveWrongType) -{ - double value = 1.11; - std::string name("metric name"); - o2::monitoring::Metric metricInstance(value, name); - BOOST_CHECK_EXCEPTION(std::get(metricInstance.getFirstValue().second), std::bad_variant_access, is_critical); -} - -BOOST_AUTO_TEST_CASE(tags) -{ - Metric metric = Metric{10, "myMetric"}.addTag(o2::monitoring::tags::Key::Detector, o2::monitoring::tags::Value::TRD).addTag(o2::monitoring::tags::Key::Unit, o2::monitoring::tags::Value::Milliseconds); - auto tags = metric.getTags(); - int sum = 0; - for (auto const& tag : tags) { - sum += tag.second; - } - BOOST_CHECK_EQUAL(sum, 45); -} - -BOOST_AUTO_TEST_CASE(retrieveIntType) -{ - int value = 10; - std::string name("metric name"); - Metric metricInstance(value, name); - - BOOST_CHECK_EQUAL(std::get(metricInstance.getFirstValue().second), 10); - BOOST_CHECK_EQUAL(metricInstance.getFirstValueType(), 0); -} - -BOOST_AUTO_TEST_CASE(retrieveDoubleType) -{ - double value = 1.11; - std::string name("metric name"); - Metric metricInstance(value, name); - - BOOST_CHECK_EQUAL(std::get(metricInstance.getFirstValue().second), 1.11); - BOOST_CHECK_EQUAL(metricInstance.getFirstValueType(), 2); -} - -BOOST_AUTO_TEST_CASE(retrieveStringType) -{ - std::string value = "testString"; - std::string name("metric name"); - Metric metricInstance(value, name); - - BOOST_CHECK_EQUAL(std::get(metricInstance.getFirstValue().second), "testString"); - BOOST_CHECK_EQUAL(metricInstance.getFirstValueType(), 1); -} - -BOOST_AUTO_TEST_CASE(retrieveUnsignedLongLongType) -{ - uint64_t value = 10000000000000LL; - std::string name("metric name"); - Metric metricInstance(value, name); - - BOOST_CHECK_EQUAL(std::get(metricInstance.getFirstValue().second), 10000000000000LL); - BOOST_CHECK_EQUAL(metricInstance.getFirstValueType(), 3); -} - -BOOST_AUTO_TEST_CASE(increaseMetric) -{ - Metric metric = Metric{10, "myMetric"}; - metric.increaseValue(20); - BOOST_CHECK_EQUAL(std::get(metric.getFirstValue().second), 30); - - Metric metric2 = Metric{"myValue"}; - metric2.addValue(3, "sum"); - metric2.increaseValue(10, "sum"); - BOOST_CHECK_EQUAL(std::get(metric2.getFirstValue().second), 13); - - Metric metric3 = Metric{"summed"}; - for (int i = 0; i < 5; i++) { - metric3.increaseValue(i); - } - BOOST_CHECK_EQUAL(std::get(metric3.getFirstValue().second), 10); -} - -BOOST_AUTO_TEST_CASE(regexVerbosityPolicy) -{ - Metric::setVerbosityPolicy(Verbosity::Prod, std::regex("myMetric", std::regex::optimize)); - Metric metric = Metric{10, "myMetric"}; - Metric metric2 = Metric{10, "myValue"}; - BOOST_CHECK_EQUAL(static_cast::type>(metric.getVerbosity()), - static_cast::type>(Verbosity::Prod)); - BOOST_CHECK_EQUAL(static_cast::type>(metric2.getVerbosity()), - static_cast::type>(Verbosity::Info)); -} - -BOOST_AUTO_TEST_CASE(verbosity) -{ - Metric metric = Metric{10, "myMetric", Verbosity::Prod}; - BOOST_CHECK_EQUAL(static_cast::type>(metric.getVerbosity()), - static_cast::type>(Verbosity::Prod)); -} - -} // namespace Test -} // namespace monitoring -} // namespace o2 diff --git a/test/testMonitoring.cxx b/test/testMonitoring.cxx deleted file mode 100644 index 511f77d21..000000000 --- a/test/testMonitoring.cxx +++ /dev/null @@ -1,132 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -#define BOOST_TEST_MODULE Monitoring Interface -#define BOOST_TEST_DYN_LINK -#include -#include "Monitoring/MonitoringFactory.h" - -using namespace std::string_literals; - -namespace o2 -{ -namespace monitoring -{ -namespace Test -{ - -auto monitoring = MonitoringFactory::Get("influxdb-stdout://"); -std::stringstream coutRedirect; -std::streambuf* coutBuffer; - -void enableRedirect() -{ - coutBuffer = std::cout.rdbuf(coutRedirect.rdbuf()); -} - -void disableRedirect() -{ - coutRedirect.str(std::string()); - std::cout.rdbuf(coutBuffer); -} - -void removeTimestamp(std::string& metric) -{ - metric.erase(metric.rfind(' ')); -} - - -BOOST_AUTO_TEST_CASE(parseDataPoints) -{ - enableRedirect(); - - monitoring->send(Metric{"card"} - .addValue(40.217773, "temperature") - .addValue(0, "droppedPackets") - .addValue(0.768170, "ctpClock") - .addValue(240.471130, "localClock") - .addValue(0, "totalPacketsPerSecond") - .addTag(tags::Key::ID, 3) - .addTag(tags::Key::Type, tags::Value::CRU) - ); - std::string expected1 = "card,id=3,type=CRU temperature=40.2178,droppedPackets=0i,ctpClock=0.76817,localClock=240.471,totalPacketsPerSecond=0i"; - std::string returned1 = coutRedirect.str(); - - disableRedirect(); - removeTimestamp(returned1); - BOOST_CHECK_EQUAL(expected1, returned1); - - enableRedirect(); - monitoring->send(Metric{"link"} - .addValue("GBT/GBT"s, "gbtMode") - .addValue("None"s, "loopback") - .addValue("TTC:CTP"s, "gbtMux") - .addValue("Continuous"s, "datapathMode") - .addValue("Disabled"s, "datapath") - .addValue(181.370575, "rxFreq") - .addValue(196.250259, "txFreq") - .addValue(0, "status") - .addValue(657.400024, "opticalPower") - .addTag(tags::Key::CRU, 3) - .addTag(tags::Key::ID, 3) - ); - std::string expected2 = R"(link,CRU=3,id=3 gbtMode="GBT/GBT",loopback="None",gbtMux="TTC:CTP",datapathMode="Continuous",datapath="Disabled",rxFreq=181.371,txFreq=196.25,status=0i,opticalPower=657.4)"; - std::string returned2 = coutRedirect.str(); - disableRedirect(); - removeTimestamp(returned2); - BOOST_CHECK_EQUAL(expected2, returned2); -} - -BOOST_AUTO_TEST_CASE(testSettingRun) -{ - enableRedirect(); - - monitoring->setRunNumber(1234); - monitoring->send(Metric{4321, "test"}); - std::string expected = "test,run=1234 value=4321i"; - std::string returned = coutRedirect.str(); - - disableRedirect(); - removeTimestamp(returned); - BOOST_CHECK_EQUAL(expected, returned); -} - -BOOST_AUTO_TEST_CASE(testGlobalTags) -{ - enableRedirect(); - - monitoring->addGlobalTag("custom_name", "Monitoring"); - monitoring->addGlobalTag(tags::Key::Name, tags::Value::Readout); - monitoring->send(Metric{4321, "test"}); - std::string expected = "test,custom_name=Monitoring,name=Readout,run=1234 value=4321i"; - std::string returned = coutRedirect.str(); - - disableRedirect(); - removeTimestamp(returned); - BOOST_CHECK_EQUAL(expected, returned); -} - -BOOST_AUTO_TEST_CASE(addHostnameTag) -{ - enableRedirect(); - - monitoring->setRunNumber(1234); - monitoring->addHostnameTag(); - monitoring->send(Metric{4321, "test"}); - std::string returned = coutRedirect.str(); - - disableRedirect(); - BOOST_CHECK(returned.find("hostname=") != std::string::npos); -} - -} // namespace Test -} // namespace monitoring -} // namespace o2 diff --git a/test/testMonitoringFactory.cxx b/test/testMonitoringFactory.cxx deleted file mode 100644 index c4a40a67b..000000000 --- a/test/testMonitoringFactory.cxx +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -#include -#include - -#define BOOST_TEST_MODULE Monitoring Factory -#define BOOST_TEST_DYN_LINK -#include -#include -#include - -#include "../include/Monitoring/MonitoringFactory.h" - -namespace o2 -{ -namespace monitoring -{ -namespace Test -{ - -using Monitoring = o2::monitoring::MonitoringFactory; - -BOOST_AUTO_TEST_CASE(influxdbUdp) -{ - MonitoringFactory::Get("influxdb-udp://localhost:1000"); -} - -BOOST_AUTO_TEST_CASE(InfluxDbv2) -{ - MonitoringFactory::Get("influxdbv2://localhost:9999?org=cern&bucket=test&token=TOKEN"); -} - -BOOST_AUTO_TEST_CASE(StdOut) -{ - MonitoringFactory::Get("stdout://"); -} - -BOOST_AUTO_TEST_CASE(Noop) -{ - MonitoringFactory::Get("no-op://"); -} - -#ifdef O2_MONITORING_WITH_APPMON -BOOST_AUTO_TEST_CASE(ApMon) -{ - std::filesystem::path configPath = std::filesystem::canonical("."); - auto Monitoring = MonitoringFactory::Get("apmon://" + configPath.string() + "/ApMon.conf"); - monitoring->send({10, "myCrazyMetric"}); -} -#endif - -} // namespace Test -} // namespace monitoring -} // namespace o2 diff --git a/test/testProcessDetails.cxx b/test/testProcessDetails.cxx deleted file mode 100644 index 162e6c711..000000000 --- a/test/testProcessDetails.cxx +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -#include "../src/ProcessDetails.h" - -#define BOOST_TEST_MODULE Test Monitoring ProcessDetails -#define BOOST_TEST_DYN_LINK -#include - -namespace o2 -{ -namespace monitoring -{ -namespace Test -{ - -o2::monitoring::ProcessDetails processDetails; - -BOOST_AUTO_TEST_CASE(checkPid) -{ - BOOST_CHECK(processDetails.getPid() > 1); -} - -BOOST_AUTO_TEST_CASE(checkProcessName) -{ - std::string referenceProcessName = "testProcessDetails"; - BOOST_CHECK(referenceProcessName == processDetails.getProcessName()); -} - -} // namespace Test -} // namespace monitoring -} // namespace o2 diff --git a/test/testProcessMonitor.cxx b/test/testProcessMonitor.cxx deleted file mode 100644 index 845d3ad0d..000000000 --- a/test/testProcessMonitor.cxx +++ /dev/null @@ -1,117 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -#include "Monitoring/ProcessMonitor.h" -#include "Monitoring/MonitoringFactory.h" - -#define BOOST_TEST_MODULE Test Monitoring ProcessMonitor -#define BOOST_TEST_DYN_LINK -#include - -namespace o2 -{ -namespace monitoring -{ -namespace Test -{ - -std::stringstream coutRedirect; -std::streambuf* coutBuffer; - -void enableRedirect() -{ - coutBuffer = std::cout.rdbuf(coutRedirect.rdbuf()); -} - -void disableRedirect() -{ - coutRedirect.str(std::string()); - std::cout.rdbuf(coutBuffer); -} - - - -BOOST_AUTO_TEST_CASE(monitorProcessDefaultCount) -{ - { - auto monitoring = o2::monitoring::MonitoringFactory::Get("influxdb-stdout://"); - monitoring->enableProcessMonitoring(1); - enableRedirect(); - std::this_thread::sleep_for(std::chrono::milliseconds(200)); - } - - std::istringstream returned(coutRedirect.str()); - disableRedirect(); - unsigned short int countMetrics = 0; - for (std::string line; std::getline(returned, line); ) { - countMetrics++; - } - // On linux 11 (without Smaps) and macOS 6 - BOOST_CHECK(countMetrics == 14 || countMetrics == 6); -} - - -BOOST_AUTO_TEST_CASE(monitorProcessCpuOnly) -{ - std::array names = {"cpuUsedPercentage", "involuntaryContextSwitches", "voluntaryContextSwitches", "cpuUsedAbsolute", - "averageCpuUsedPercentage", "cpuTimeConsumedByProcess"}; - { - auto monitoring = o2::monitoring::MonitoringFactory::Get("influxdb-stdout://"); - monitoring->enableProcessMonitoring(1, {PmMeasurement::Cpu}); - enableRedirect(); - std::this_thread::sleep_for(std::chrono::milliseconds(200)); - } - - std::istringstream returned(coutRedirect.str()); - disableRedirect(); - unsigned short int countMetrics = 0; - for (std::string line; std::getline(returned, line); ) { - BOOST_CHECK(std::find(names.begin(), names.end(), line.substr(0, line.find(' '))) != names.end()); - countMetrics++; - } - // On linux and macOS 6 - BOOST_CHECK_EQUAL(countMetrics, 6); -} - -BOOST_AUTO_TEST_CASE(monitorProcessAll) -{ - std::array names = {"memoryUsagePercentage", "virtualMemorySize", "residentSetSize", - "cpuUsedPercentage", "involuntaryContextSwitches", "voluntaryContextSwitches", "cpuUsedAbsolute", - "averageResidentSetSize", "averageVirtualMemorySize", "averageCpuUsedPercentage", - "cpuTimeConsumedByProcess"}; - { - auto monitoring = o2::monitoring::MonitoringFactory::Get("influxdb-stdout://"); - monitoring->enableProcessMonitoring(1, {PmMeasurement::Cpu, PmMeasurement::Mem}); - enableRedirect(); - std::this_thread::sleep_for(std::chrono::milliseconds(200)); - } - - std::istringstream returned(coutRedirect.str()); - disableRedirect(); - unsigned short int countMetrics = 0; - for (std::string line; std::getline(returned, line); ) { - BOOST_CHECK(std::find(names.begin(), names.end(), line.substr(0, line.find(' '))) != names.end()); - countMetrics++; - } - // On linux 14 and macOS 6 - BOOST_CHECK(countMetrics == 11 || countMetrics == 6); -} - -BOOST_AUTO_TEST_CASE(monitorProcessMetricName) -{ - auto vec = o2::monitoring::ProcessMonitor::getAvailableMetricsNames(); - BOOST_CHECK_EQUAL(vec.size(), o2::monitoring::ProcessMonitor::AVAILABLE_METRICS_SIZE); - BOOST_CHECK_EQUAL(vec[o2::monitoring::ProcessMonitor::AVG_CPU_USED_PERCENTAGE], "averageCpuUsedPercentage"); -} - -} // namespace Test -} // namespace monitoring -} // namespace o2 diff --git a/test/testRegexMatch.cxx b/test/testRegexMatch.cxx deleted file mode 100644 index 39cfb39e7..000000000 --- a/test/testRegexMatch.cxx +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -#include -#include -#include -#include - -#define BOOST_TEST_MODULE Monitoring RegexMatch -#define BOOST_TEST_DYN_LINK -#include - -namespace o2 -{ -namespace monitoring -{ -namespace Test -{ - -BOOST_AUTO_TEST_CASE(retrieveOtherParams) -{ - static std::regex metricsRE(R"regex(\[METRIC\] ([a-zA-Z0-9/_-]+),(0|1|2|4) ([0-9.a-zA-Z_/" <>()<$:]+) ([0-9]+))regex", std::regex::optimize); - - std::vector metrics = { - "[METRIC] bkey,0 12 1789372894 hostname=test.cern.ch", - "[METRIC] bkey,0 \"Sample string\" 1789372894 hostname=test.cern.ch", - "[METRIC] bkey,0 \"\" 1789372894 hostname=test.cern.ch"}; - - std::smatch match; - for (const auto& metric : metrics) { - BOOST_CHECK(std::regex_search(metric, match, metricsRE)); - } -} - -} // namespace Test -} // namespace monitoring -} // namespace o2 diff --git a/test/testThreads.cxx b/test/testThreads.cxx deleted file mode 100644 index f6db93897..000000000 --- a/test/testThreads.cxx +++ /dev/null @@ -1,40 +0,0 @@ -#include "../include/Monitoring/MonitoringFactory.h" - -#define BOOST_TEST_MODULE Test Monitoring Threads -#define BOOST_TEST_DYN_LINK -#include -#include -#include - -namespace o2 -{ -namespace monitoring -{ -namespace Test -{ - -using namespace o2::monitoring; - -BOOST_AUTO_TEST_CASE(runLibraryInMultipleThreads) -{ - std::array threads; - for (auto& thread : threads) { - thread = std::thread([] { - for (int i = 0; i < 20; i++) { - auto monitoring = MonitoringFactory::Get("stdout://"); - monitoring->addGlobalTag("name", "Readout"); - monitoring->addGlobalTag(tags::Key::Name, tags::Value::Readout); - monitoring->send({1, "myCrazyMetricI"}); - monitoring->send({13.33, "myCrazyMetricS"}); - } - }); - } - - for (auto& thread : threads) { - thread.join(); - } -} - -} // namespace Test -} // namespace monitoring -} // namespace o2 diff --git a/test/testVerbosity.cxx b/test/testVerbosity.cxx deleted file mode 100644 index 686ef8231..000000000 --- a/test/testVerbosity.cxx +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2019-2020 CERN and copyright holders of ALICE O2. -// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. -// All rights not expressly granted are reserved. -// -// This software is distributed under the terms of the GNU General Public -// License v3 (GPL Version 3), copied verbatim in the file "COPYING". -// -// In applying this license CERN does not waive the privileges and immunities -// granted to it by virtue of its status as an Intergovernmental Organization -// or submit itself to any jurisdiction. - -#include -#include - -#define BOOST_TEST_MODULE Monitoring Verbosityy -#define BOOST_TEST_DYN_LINK -#include -#include - -#include "Monitoring/MonitoringFactory.h" - -namespace o2 -{ -namespace monitoring -{ -namespace Test -{ - -using Monitoring = o2::monitoring::MonitoringFactory; - -BOOST_AUTO_TEST_CASE(verbosity) -{ - std::string ilUrl = "stdout://"; - auto il = Monitoring::GetBackend(ilUrl); - BOOST_CHECK_EQUAL(static_cast::type>(il->getVerbosity()), 2); - - std::string influxUrl = "influxdb-udp://127.0.0.1:1234"; - auto influx = Monitoring::GetBackend(influxUrl); - BOOST_CHECK_EQUAL(static_cast::type>(influx->getVerbosity()), 1); - - std::string influxDebugUrl = "influxdb-udp://127.0.0.1:1234/debug"; - auto influxDebug = Monitoring::GetBackend(influxDebugUrl); - BOOST_CHECK_EQUAL(static_cast::type>(influxDebug->getVerbosity()), 2); - - std::string ilProdUrl = "stdout:///info"; - auto ilProd = Monitoring::GetBackend(ilProdUrl); - BOOST_CHECK_EQUAL(static_cast::type>(ilProd->getVerbosity()), 1); -} - -} // namespace Test -} // namespace monitoring -} // namespace o2