grpc
src
cpp
server
load_reporter
get_cpu_stats_linux.cc
Go to the documentation of this file.
1
/*
2
*
3
* Copyright 2018 gRPC authors.
4
*
5
* Licensed under the Apache License, Version 2.0 (the "License");
6
* you may not use this file except in compliance with the License.
7
* You may obtain a copy of the License at
8
*
9
* http://www.apache.org/licenses/LICENSE-2.0
10
*
11
* Unless required by applicable law or agreed to in writing, software
12
* distributed under the License is distributed on an "AS IS" BASIS,
13
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
* See the License for the specific language governing permissions and
15
* limitations under the License.
16
*
17
*/
18
19
#include <
grpc/support/port_platform.h
>
20
21
#include <utility>
22
23
#ifdef GPR_LINUX
24
25
#include <inttypes.h>
26
27
#include <cstdio>
28
29
#include "
src/cpp/server/load_reporter/get_cpu_stats.h
"
30
31
namespace
grpc
{
32
namespace
load_reporter {
33
34
std::pair<uint64_t, uint64_t>
GetCpuStatsImpl
() {
35
uint64_t
busy = 0,
total
= 0;
36
FILE
* fp;
37
fp = fopen(
"/proc/stat"
,
"r"
);
38
uint64_t
user, nice, system,
idle
;
39
if
(fscanf(fp,
"cpu %"
PRIu64
" %"
PRIu64
" %"
PRIu64
" %"
PRIu64, &user,
40
&nice, &system, &
idle
) != 4) {
41
// Something bad happened with the information, so assume it's all invalid
42
user = nice = system =
idle
= 0;
43
}
44
fclose
(fp);
45
busy = user + nice + system;
46
total
= busy +
idle
;
47
return
std::make_pair(busy,
total
);
48
}
49
50
}
// namespace load_reporter
51
}
// namespace grpc
52
53
#endif // GPR_LINUX
idle
static uv_idle_t idle
Definition:
test-poll-oob.c:37
grpc
Definition:
grpcpp/alarm.h:33
grpc::load_reporter::GetCpuStatsImpl
std::pair< uint64_t, uint64_t > GetCpuStatsImpl()
Definition:
get_cpu_stats_unsupported.cc:30
total
size_t total
Definition:
cord_analysis.cc:59
uint64_t
unsigned __int64 uint64_t
Definition:
stdint-msvc2008.h:90
get_cpu_stats.h
benchmark.FILE
FILE
Definition:
benchmark.py:21
grpc::fclose
fclose(creds_file)
port_platform.h
grpc
Author(s):
autogenerated on Fri May 16 2025 02:58:28