Line data Source code
1 : /*
2 : ___________________________________________
3 : | _ ___ _ |
4 : | | | |__ \ | | |
5 : | | |__ ) |__ _ __ _ ___ _ __ | |_ |
6 : | | '_ \ / // _` |/ _` |/ _ \ '_ \| __| | HTTP/2 AGENT FOR MOCK TESTING
7 : | | | | |/ /| (_| | (_| | __/ | | | |_ | Version 0.0.z
8 : | |_| |_|____\__,_|\__, |\___|_| |_|\__| | https://github.com/testillano/h2agent
9 : | __/ | |
10 : | |___/ |
11 : |___________________________________________|
12 :
13 : Licensed under the MIT License <http://opensource.org/licenses/MIT>.
14 : SPDX-License-Identifier: MIT
15 : Copyright (c) 2021 Eduardo Ramos
16 :
17 : Permission is hereby granted, free of charge, to any person obtaining a copy
18 : of this software and associated documentation files (the "Software"), to deal
19 : in the Software without restriction, including without limitation the rights
20 : to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
21 : copies of the Software, and to permit persons to whom the Software is
22 : furnished to do so, subject to the following conditions:
23 :
24 : The above copyright notice and this permission notice shall be included in all
25 : copies or substantial portions of the Software.
26 :
27 : THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
28 : IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
29 : FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
30 : AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
31 : LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
32 : OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
33 : SOFTWARE.
34 : */
35 :
36 : #include <boost/optional.hpp>
37 : #include <sstream>
38 : #include <map>
39 : #include <errno.h>
40 :
41 :
42 : #include <ert/tracing/Logger.hpp>
43 : #include <ert/http2comm/Http.hpp>
44 : #include <ert/http2comm/Http2Headers.hpp>
45 : #include <ert/http2comm/URLFunctions.hpp>
46 :
47 : #include <MyTrafficHttp2Client.hpp>
48 :
49 : #include <AdminData.hpp>
50 : #include <MockClientData.hpp>
51 : #include <Configuration.hpp>
52 : #include <GlobalVariable.hpp>
53 : #include <FileManager.hpp>
54 : #include <SocketManager.hpp>
55 : #include <functions.hpp>
56 :
57 : namespace h2agent
58 : {
59 : namespace http2
60 : {
61 :
62 10 : void MyTrafficHttp2Client::enableMyMetrics(ert::metrics::Metrics *metrics, const std::string &source) {
63 :
64 10 : metrics_ = metrics;
65 :
66 10 : if (metrics_) {
67 6 : ert::metrics::labels_t familyLabels = {{"source", (source.empty() ? name_ : source)}};
68 :
69 8 : ert::metrics::counter_family_t& cf = metrics->addCounterFamily("h2agent_traffic_client_provisioned_requests_counter", "Requests provisioned counter in h2agent_traffic_client", familyLabels);
70 6 : provisioned_requests_successful_counter_ = &(cf.Add({{"result", "successful"}}));
71 6 : provisioned_requests_failed_counter_ = &(cf.Add({{"result", "failed"}}));
72 :
73 8 : ert::metrics::counter_family_t& cf2 = metrics->addCounterFamily("h2agent_traffic_client_purged_contexts_counter", "Contexts purged counter in h2agent_traffic_client", familyLabels);
74 6 : purged_contexts_successful_counter_ = &(cf2.Add({{"result", "successful"}}));
75 6 : purged_contexts_failed_counter_ = &(cf2.Add({{"result", "failed"}}));
76 :
77 8 : ert::metrics::counter_family_t& cf3 = metrics->addCounterFamily("h2agent_traffic_client_response_validation_failures_counter", "Response validation failures counter in h2agent_traffic_client", familyLabels);
78 2 : response_validation_failures_counter_ = &(cf3.Add({}));
79 2 : }
80 20 : }
81 :
82 : }
83 : }
|