mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2024-11-22 10:40:05 +08:00
添加对象统计接口
This commit is contained in:
parent
291caf537a
commit
aa45590c13
@ -1 +1 @@
|
||||
Subproject commit 64a61db77b1adeada5e6229b83fec655b1cc09bc
|
||||
Subproject commit 6a21c58fa2e21416306c5a9cc88f943b882253e6
|
@ -58,6 +58,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": {
|
||||
@ -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;
|
||||
};
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user