File tree Expand file tree Collapse file tree
benchmark_suite/benchmark_provdb Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -153,7 +153,8 @@ int main(int argc, char **argv){
153153 {" io_step" , 199 },
154154 {" io_step_tstart" , 0 },
155155 {" io_step_tend" , 5000 },
156- {" outlier_score" ,0.1 }
156+ {" outlier_score" ,0.1 },
157+ {" hostname" ," myhost" }
157158 };
158159
159160 std::vector<nlohmann::json> anomaly_prov (args.anomalies_per_cycle , provenance_entry);
Original file line number Diff line number Diff line change 1- nobase_include_HEADERS = chimbuko/chimbuko.hpp chimbuko/ad/ADOutlier.hpp chimbuko/ad/ADNetClient.hpp chimbuko/ad/ADAnomalyProvenance.hpp chimbuko/ad/ADParser.hpp chimbuko/ad/ADProvenanceDBengine.hpp chimbuko/ad/ADNormalEventProvenance.hpp chimbuko/ad/ADLocalFuncStatistics.hpp chimbuko/ad/ADMetadataParser.hpp chimbuko/ad/AnomalyData.hpp chimbuko/ad/ADDefine.hpp chimbuko/ad/ADglobalFunctionIndexMap.hpp chimbuko/ad/ADProvenanceDBclient.hpp chimbuko/ad/ADEvent.hpp chimbuko/ad/ADCounter.hpp chimbuko/ad/ADLocalCounterStatistics.hpp chimbuko/ad/ExecData.hpp chimbuko/ad/utils.hpp chimbuko/ad/ADio.hpp chimbuko/verbose.hpp chimbuko/pserver/PSProvenanceDBclient.hpp chimbuko/pserver/global_anomaly_stats.hpp chimbuko/pserver/PSglobalFunctionIndexMap.hpp chimbuko/pserver/PSstatSender.hpp chimbuko/pserver/AnomalyStat.hpp chimbuko/pserver/global_counter_stats.hpp chimbuko/param/sstd_param.hpp chimbuko/param/hbos_param.hpp chimbuko/AD.hpp chimbuko/message.hpp chimbuko/net.hpp chimbuko/pserver.hpp chimbuko/param.hpp chimbuko/net/zmqme_net.hpp chimbuko/net/mpi_net.hpp chimbuko/net/zmq_net.hpp chimbuko/net/local_net.hpp chimbuko/util/RunStats.hpp chimbuko/util/ADIOS2parseUtils.hpp chimbuko/util/time.hpp chimbuko/util/map.hpp chimbuko/util/error.hpp chimbuko/util/string.hpp chimbuko/util/DispatchQueue.hpp chimbuko/util/PerfStats.hpp chimbuko/util/RunMetric.hpp chimbuko/util/memutils.hpp chimbuko/util/Anomalies.hpp chimbuko/util/barrier.hpp chimbuko/util/threadPool.hpp chimbuko/util/hash.hpp chimbuko/util/mtQueue.hpp chimbuko/util/serialize.hpp chimbuko/util/commandLineParser.hpp
1+ nobase_include_HEADERS = chimbuko/chimbuko.hpp chimbuko/ad/ADOutlier.hpp chimbuko/ad/ADNetClient.hpp chimbuko/ad/ADAnomalyProvenance.hpp chimbuko/ad/ADParser.hpp chimbuko/ad/ADProvenanceDBengine.hpp chimbuko/ad/ADNormalEventProvenance.hpp chimbuko/ad/ADLocalFuncStatistics.hpp chimbuko/ad/ADMetadataParser.hpp chimbuko/ad/AnomalyData.hpp chimbuko/ad/ADDefine.hpp chimbuko/ad/ADglobalFunctionIndexMap.hpp chimbuko/ad/ADProvenanceDBclient.hpp chimbuko/ad/ADEvent.hpp chimbuko/ad/ADCounter.hpp chimbuko/ad/ADLocalCounterStatistics.hpp chimbuko/ad/ExecData.hpp chimbuko/ad/utils.hpp chimbuko/ad/ADio.hpp chimbuko/verbose.hpp chimbuko/pserver/PSProvenanceDBclient.hpp chimbuko/pserver/global_anomaly_stats.hpp chimbuko/pserver/PSglobalFunctionIndexMap.hpp chimbuko/pserver/PSstatSender.hpp chimbuko/pserver/AnomalyStat.hpp chimbuko/pserver/global_counter_stats.hpp chimbuko/param/sstd_param.hpp chimbuko/param/hbos_param.hpp chimbuko/AD.hpp chimbuko/message.hpp chimbuko/net.hpp chimbuko/pserver.hpp chimbuko/param.hpp chimbuko/net/zmqme_net.hpp chimbuko/net/mpi_net.hpp chimbuko/net/zmq_net.hpp chimbuko/net/local_net.hpp chimbuko/util/RunStats.hpp chimbuko/util/ADIOS2parseUtils.hpp chimbuko/util/time.hpp chimbuko/util/map.hpp chimbuko/util/error.hpp chimbuko/util/string.hpp chimbuko/util/DispatchQueue.hpp chimbuko/util/PerfStats.hpp chimbuko/util/RunMetric.hpp chimbuko/util/memutils.hpp chimbuko/util/Anomalies.hpp chimbuko/util/barrier.hpp chimbuko/util/threadPool.hpp chimbuko/util/hash.hpp chimbuko/util/mtQueue.hpp chimbuko/util/serialize.hpp chimbuko/util/commandLineParser.hpp chimbuko/util/environment.hpp
Original file line number Diff line number Diff line change 1+ #pragma once
2+ #include < chimbuko_config.h>
3+ #include < string>
4+
5+ namespace chimbuko {
6+
7+ /* *
8+ * @brief Get the hostname of the syste,
9+ *
10+ * Hostname is determined the first time the function is called and is maintained as a static string
11+ */
12+ const std::string &getHostname ();
13+
14+ };
Original file line number Diff line number Diff line change @@ -54,6 +54,7 @@ Function execution "events" in Chimbuko are labeled by a unique (for each proces
5454| **"pid"**: *process index*,
5555| **"rid"**: *process rank*,
5656| **"tid"**: *thread index*
57+ | **"hostname"**: *The hostname of the node on which the application was executing*
5758| **"runtime_exclusive"**: *Function execution time exclusive of children*,
5859| **"runtime_total"**: *Function total execution time*,
5960| **"io_step"**: *IO step index*,
Original file line number Diff line number Diff line change 11AM_CPPFLAGS = -I$(top_srcdir ) /include -I$(top_srcdir ) /3rdparty @PS_FLAGS@
22
33lib_LTLIBRARIES = libchimbuko.la
4- libchimbuko_la_SOURCES = chimbuko.cpp param.cpp pserver/global_anomaly_stats.cpp pserver/global_counter_stats.cpp util/ADIOS2parseUtils.cpp util/RunStats.cpp util/DispatchQueue.cpp util/Anomalies.cpp util/map.cpp util/string.cpp util/error.cpp util/memutils.cpp util/time.cpp util/PerfStats.cpp ad/ADOutlier.cpp ad/ADParser.cpp ad/ADio.cpp ad/utils.cpp ad/ADEvent.cpp ad/AnomalyData.cpp ad/ExecData.cpp ad/ADCounter.cpp ad/ADAnomalyProvenance.cpp ad/ADNetClient.cpp ad/ADLocalFuncStatistics.cpp ad/ADLocalCounterStatistics.cpp ad/ADProvenanceDBengine.cpp ad/ADProvenanceDBclient.cpp ad/ADMetadataParser.cpp ad/ADglobalFunctionIndexMap.cpp ad/ADNormalEventProvenance.cpp pserver/PSstatSender.cpp pserver/PSglobalFunctionIndexMap.cpp pserver/PSProvenanceDBclient.cpp pserver/AnomalyStat.cpp message.cpp net/zmq_net.cpp net/mpi_net.cpp net/zmqme_net.cpp net/local_net.cpp net.cpp param/hbos_param.cpp param/sstd_param.cpp
4+ libchimbuko_la_SOURCES = chimbuko.cpp param.cpp pserver/global_anomaly_stats.cpp pserver/global_counter_stats.cpp util/ADIOS2parseUtils.cpp util/RunStats.cpp util/DispatchQueue.cpp util/Anomalies.cpp util/map.cpp util/string.cpp util/error.cpp util/memutils.cpp util/time.cpp util/PerfStats.cpp util/environment.cpp ad/ADOutlier.cpp ad/ADParser.cpp ad/ADio.cpp ad/utils.cpp ad/ADEvent.cpp ad/AnomalyData.cpp ad/ExecData.cpp ad/ADCounter.cpp ad/ADAnomalyProvenance.cpp ad/ADNetClient.cpp ad/ADLocalFuncStatistics.cpp ad/ADLocalCounterStatistics.cpp ad/ADProvenanceDBengine.cpp ad/ADProvenanceDBclient.cpp ad/ADMetadataParser.cpp ad/ADglobalFunctionIndexMap.cpp ad/ADNormalEventProvenance.cpp pserver/PSstatSender.cpp pserver/PSglobalFunctionIndexMap.cpp pserver/PSProvenanceDBclient.cpp pserver/AnomalyStat.cpp message.cpp net/zmq_net.cpp net/mpi_net.cpp net/zmqme_net.cpp net/local_net.cpp net.cpp param/hbos_param.cpp param/sstd_param.cpp
55libchimbuko_la_LDFLAGS = -version-info 3:0:0
Original file line number Diff line number Diff line change 11#include < chimbuko/ad/ADAnomalyProvenance.hpp>
22#include < chimbuko/verbose.hpp>
33#include < chimbuko/util/error.hpp>
4+ #include < chimbuko/util/environment.hpp>
45
56using namespace chimbuko ;
67
@@ -177,9 +178,8 @@ nlohmann::json ADAnomalyProvenance::get_json() const{
177178 {" io_step" , m_io_step},
178179 {" io_step_tstart" , m_io_step_tstart},
179180 {" io_step_tend" , m_io_step_tend},
180- {" outlier_score" , m_call.get_outlier_score () }
181-
182-
181+ {" outlier_score" , m_call.get_outlier_score () },
182+ {" hostname" , getHostname () }
183183 };
184184}
185185
Original file line number Diff line number Diff line change 1+ #include < chimbuko/util/environment.hpp>
2+ #include < chimbuko/util/error.hpp>
3+ #include < unistd.h>
4+ #include < cstring>
5+ #include < cstdlib>
6+
7+ namespace chimbuko {
8+
9+ const std::string &getHostname (){
10+ static std::string h;
11+ if (h.size () == 0 ){
12+ // Implementation thanks to http://www.microhowto.info/howto/determine_the_fully_qualified_hostname_of_the_local_machine_in_c.html
13+ size_t hostname_len=128 ;
14+ char * hostname=0 ;
15+ while (1 ) {
16+ // (Re)allocate buffer of length hostname_len.
17+ char * realloc_hostname=(char *)realloc (hostname,hostname_len);
18+ if (realloc_hostname==0 ) {
19+ free (hostname);
20+ fatal_error (" Failed to get hostname (out of memory)" );
21+ }
22+ hostname=realloc_hostname;
23+
24+ // Terminate the buffer.
25+ hostname[hostname_len-1 ]=0 ;
26+
27+ // Offer all but the last byte of the buffer to gethostname.
28+ if (gethostname (hostname,hostname_len-1 )==0 ) {
29+ size_t count=strlen (hostname);
30+ if (count<hostname_len-2 ) {
31+ // Break from loop if hostname definitely not truncated
32+ break ;
33+ }
34+ }
35+
36+ // Double size of buffer and try again.
37+ hostname_len*=2 ;
38+ }
39+ h = std::string (hostname);
40+ free (hostname);
41+ }
42+ return h;
43+ }
44+
45+
46+ }
Original file line number Diff line number Diff line change @@ -24,6 +24,7 @@ set -o pipefail
2424./util/PerfStats
2525./util/error
2626./util/memutils
27+ ./util/environment -hostname $( hostname)
2728./param/sstd_param
2829./pserver/PSglobalFunctionIndexMap
2930./pserver/global_anomaly_stats
Original file line number Diff line number Diff line change 1+ #pragma once
2+
3+ // Include this header to get access to the cmdline args (providing they are set by the main program)
4+ extern int _argc;
5+ extern char ** _argv;
Original file line number Diff line number Diff line change 11#include " gtest/gtest.h"
22#include " chimbuko/verbose.hpp"
3+ #include " unit_test_cmdline.hpp"
4+
5+ int _argc;
6+ char ** _argv;
37
48int main (int argc, char **argv) {
59 chimbuko::enableVerboseLogging () = true ;
610 ::testing::InitGoogleTest (&argc, argv);
11+ _argc = argc;
12+ _argv = argv;
713 return RUN_ALL_TESTS ();
814}
You can’t perform that action at this time.
0 commit comments