Commit aa45590c by xiongziliang

添加对象统计接口

parent 291caf53
Subproject commit 64a61db77b1adeada5e6229b83fec655b1cc09bc
Subproject commit 6a21c58fa2e21416306c5a9cc88f943b882253e6
......@@ -59,6 +59,32 @@
"response": []
},
{
"name": "获取主要对象个数(getStatistic)",
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{ZLMediaKit_URL}}/index/api/getStatistic?secret={{ZLMediaKit_secret}}",
"host": [
"{{ZLMediaKit_URL}}"
],
"path": [
"index",
"api",
"getStatistic"
],
"query": [
{
"key": "secret",
"value": "{{ZLMediaKit_secret}}",
"description": "api操作密钥(配置文件配置),如果操作ip是127.0.0.1,则不需要此参数"
}
]
}
},
"response": []
},
{
"name": "获取后台线程负载(getWorkThreadsLoad)",
"request": {
"method": "GET",
......@@ -568,6 +594,12 @@
"key": "enable_mp4",
"value": "0",
"description": "是否开启mp4录制"
},
{
"key": "ffmpeg_cmd_key",
"value": "ffmpeg.cmd_hd",
"description": "FFmpeg命名参数模板,置空则采用配置项:ffmpeg.cmd",
"disabled": true
}
]
}
......
......@@ -1026,6 +1026,24 @@ void installWebApi() {
});
});
api_regist("/index/api/getStatistic",[](API_ARGS_MAP){
CHECK_SECRET();
val["data"]["MediaSource"] = (Json::UInt64)(ObjectStatistic<MediaSource>::count());
val["data"]["MultiMediaSourceMuxer"] = (Json::UInt64)(ObjectStatistic<MultiMediaSourceMuxer>::count());
val["data"]["TcpSession"] = (Json::UInt64)(ObjectStatistic<TcpSession>::count());
val["data"]["TcpClient"] = (Json::UInt64)(ObjectStatistic<TcpClient>::count());
val["data"]["Socket"] = (Json::UInt64)(ObjectStatistic<Socket>::count());
val["data"]["FrameImp"] = (Json::UInt64)(ObjectStatistic<FrameImp>::count());
val["data"]["Frame"] = (Json::UInt64)(ObjectStatistic<Frame>::count());
val["data"]["Buffer"] = (Json::UInt64)(ObjectStatistic<Buffer>::count());
val["data"]["BufferRaw"] = (Json::UInt64)(ObjectStatistic<BufferRaw>::count());
val["data"]["BufferLikeString"] = (Json::UInt64)(ObjectStatistic<BufferLikeString>::count());
val["data"]["BufferList"] = (Json::UInt64)(ObjectStatistic<BufferList>::count());
});
////////////以下是注册的Hook API////////////
api_regist("/index/hook/on_publish",[](API_ARGS_MAP){
//开始推流事件
......
......@@ -14,6 +14,11 @@
#include "Network/sockutil.h"
#include "Network/TcpSession.h"
using namespace toolkit;
namespace toolkit {
StatisticImp(mediakit::MediaSource);
}
namespace mediakit {
recursive_mutex s_media_source_mtx;
......
......@@ -296,6 +296,8 @@ private:
string _app;
string _stream_id;
std::weak_ptr<MediaSourceEvent> _listener;
//对象个数统计
ObjectStatistic<MediaSource> _statistic;
};
///缓存刷新策略类
......
......@@ -11,6 +11,11 @@
#include <math.h>
#include "Common/config.h"
#include "MultiMediaSourceMuxer.h"
namespace toolkit {
StatisticImp(mediakit::MultiMediaSourceMuxer);
}
namespace mediakit {
///////////////////////////////MultiMuxerPrivate//////////////////////////////////
......
......@@ -192,6 +192,8 @@ private:
mutex _rtp_sender_mtx;
unordered_map<string, RtpSender::Ptr> _rtp_sender;
#endif //ENABLE_RTPPROXY
//对象个数统计
ObjectStatistic<MultiMediaSourceMuxer> _statistic;
};
}//namespace mediakit
......
......@@ -13,6 +13,11 @@
using namespace std;
using namespace toolkit;
namespace toolkit {
StatisticImp(mediakit::Frame);
StatisticImp(mediakit::FrameImp);
}
namespace mediakit{
/**
......
......@@ -122,6 +122,10 @@ public:
* 返回可缓存的frame
*/
static Ptr getCacheAbleFrame(const Ptr &frame);
private:
//对象个数统计
ObjectStatistic<Frame> _statistic;
};
class FrameImp : public Frame {
......@@ -166,6 +170,8 @@ public:
uint32_t _pts = 0;
size_t _prefix_size = 0;
BufferLikeString _buffer;
//对象个数统计
ObjectStatistic<FrameImp> _statistic;
};
/**
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论