소스 검색

Z991239-5349 #comment fea: modify beidou logs

chenliangyu 1 년 전
부모
커밋
91adf8bee4

+ 2 - 0
Framework/Common/SpBase.h

@@ -1558,6 +1558,8 @@ public:
 	DbgToBeidou& setCallStack(CSimpleStringA t_callStack);//调用堆栈,格式("callStack":[{“xxx”:"xx","xxxx":sdfs}])
 	DbgToBeidou& setDbStack(CSimpleStringA t_dbStack);//格式("dbStack":[{“xxxxx”:"xxdfsdfs","xxddddxx":sdsddsdfs}])
 	DbgToBeidou& setTags(CSimpleStringA t_Tags);
+	DbgToBeidou& set_deployUnitId(CSimpleString t_deployUnitId);
+	DbgToBeidou& set_serviceUnitId(CSimpleString t_serviceUnitId);
 	DbgToBeidou& withLogProducer(void* t_logProducer);
 	void operator () ()  const;
 private:

+ 2 - 0
Framework/Common/log_define.h

@@ -92,6 +92,8 @@ typedef struct _beidou_log_item {
     char* CallStack;
     char* DbStack;
     char* Tags;
+    char* deployUnitId;
+    char* serviceUnitId;
 }beidou_log_item;
 
 #endif

+ 9 - 4
Framework/RvcLogSdk/log_builder.c

@@ -107,8 +107,6 @@ int add_beidou_log(log_group_builder* bder, beidou_log_item* log) {
     
     
     */
-
-    //统一日志
     {
 
         cJSON_AddItemToObject(united_content, "businessId", cJSON_CreateString(log->BussID));
@@ -116,8 +114,15 @@ int add_beidou_log(log_group_builder* bder, beidou_log_item* log) {
         cJSON_AddItemToObject(united_content, "parentSpanId", cJSON_CreateString(log->ParentSpanId));
         cJSON_AddItemToObject(united_content, "spanId", cJSON_CreateString(log->SpanId));
         cJSON_AddItemToObject(united_content, "timestamp", cJSON_CreateString(nowTime));
-        cJSON_AddItemToObject(united_content, "deployUnitId", cJSON_CreateString(bder->config->unitedDeployUnitId));
-        cJSON_AddItemToObject(united_content, "serviceUnitId", cJSON_CreateString(bder->config->unitedServiceUnitId));
+        if(log->deployUnitId != NULL)
+            cJSON_AddItemToObject(united_content, "deployUnitId", cJSON_CreateString(log->deployUnitId));
+        else
+            cJSON_AddItemToObject(united_content, "deployUnitId", cJSON_CreateString(bder->config->unitedDeployUnitId));
+        if(log->serviceUnitId != NULL)
+            cJSON_AddItemToObject(united_content, "serviceUnitId", cJSON_CreateString(log->serviceUnitId));
+        else
+            cJSON_AddItemToObject(united_content, "serviceUnitId", cJSON_CreateString(bder->config->unitedServiceUnitId));
+
         if (log->Host != NULL) {
             cJSON_AddItemToObject(united_content, "host", cJSON_CreateString(log->Host));
         }

+ 22 - 0
Framework/spbase/sp_logwithlink.cpp

@@ -168,6 +168,8 @@ public:
     CSimpleStringA CallStack;
     CSimpleStringA DbStack;
     CSimpleStringA Tags;
+    CSimpleStringA deployUnitId;
+    CSimpleStringA serviceUnitId;
     void* logProducer;
     Beidou_private(const linkContext& t_context, CSimpleStringA t_Api)
         :logProducer(NULL)
@@ -186,6 +188,8 @@ public:
             Tags = "{\"tags\":{}}";
         else
             Tags = CSimpleString::Format("{\"tags\":{\"TerminalNo\":%s}}", g_terminalNo.c_str()).GetData();
+        deployUnitId = "";
+        serviceUnitId = "";
     }
 };
 
@@ -248,6 +252,15 @@ DbgToBeidou& DbgToBeidou::setTags(CSimpleStringA t_Tags) {
     return *this;
 }
 
+DbgToBeidou& DbgToBeidou::set_deployUnitId(CSimpleString t_deployUnitId) {
+    m_priPtr->deployUnitId = t_deployUnitId;
+    return *this;
+}
+DbgToBeidou& DbgToBeidou::set_serviceUnitId(CSimpleString t_serviceUnitId) {
+    m_priPtr->serviceUnitId = t_serviceUnitId;
+    return *this;
+}
+
 void DbgToBeidou::operator () ()  const {
     beidou_log_item beidou_log = { 0 };
     beidou_log.BussID = (char*)m_priPtr->BussID.GetData();
@@ -262,6 +275,15 @@ void DbgToBeidou::operator () ()  const {
     beidou_log.CallStack = (char*)m_priPtr->CallStack.GetData();
     beidou_log.DbStack = (char*)m_priPtr->DbStack.GetData();
     beidou_log.Tags = (char*)m_priPtr->Tags.GetData();
+    if (m_priPtr->deployUnitId.GetLength() > 0)
+        beidou_log.deployUnitId = (char*)m_priPtr->deployUnitId.GetData();
+    else
+        beidou_log.deployUnitId = NULL;
+
+    if (m_priPtr->serviceUnitId.GetLength() > 0)
+        beidou_log.serviceUnitId = (char*)m_priPtr->serviceUnitId.GetData();
+    else
+        beidou_log.serviceUnitId = NULL;
 
     log_producer_client* cur = NULL;
     if (m_priPtr->logProducer)

+ 41 - 6
Module/mod_chromium/CWebsocketServer.cpp

@@ -351,6 +351,8 @@ namespace Chromium {
 			const char* ReturnCode_nodeName = "ReturnCode";
 			const char* Tags_nodeName = "Tags";
 			const char* API_nodeName = "API";
+			const char* deployUnitId_nodeName = "deployUnitId";
+			const char* serviceUintId_nodeName = "serviceUintId";
 			auto  BusinessId = json_deal::getStringFromCjsonObj(pJson.get(), BusinessId_nodeName);
 			if (!BusinessId.first)
 			{
@@ -375,30 +377,63 @@ namespace Chromium {
 				DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("do not has node %s", ParentSpanId_nodeName);
 				break;
 			}
+
+			linkContext cur(BusinessId.second.GetData(), TraceId.second.GetData(), SpanId.second.GetData(), ParentSpanId.second.GetData());
+			auto API = json_deal::getStringFromCjsonObj(pJson.get(), API_nodeName);
+			if (!API.first)
+				API.second = "";
+			DbgToBeidou obj(cur, API.second.GetData());
+
 			auto Timestamp = json_deal::getStringFromCjsonObj(pJson.get(), Timestamp_nodeName);
 			if (!Timestamp.first)
 				Timestamp.second = "";
+			else if(Timestamp.second.GetLength() > 0)
+				obj.setResponseTime(Timestamp.second);
+
 			auto Host = json_deal::getStringFromCjsonObj(pJson.get(), Host_nodeName);
 			if (!Host.first)
 				Host.second = "";
+			else if (Host.second.GetLength() > 0)
+				obj.setHost(Host.second);
+
 			auto CallStack = json_deal::getStringFromCjsonObj(pJson.get(), CallStack_nodeName);
 			if (!CallStack.first)
 				CallStack.second = "";
+			else if (CallStack.second.GetLength() > 0)
+				obj.setCallStack(CallStack.second);
+
 			auto DbStack = json_deal::getStringFromCjsonObj(pJson.get(), DbStack_nodeName);
 			if (!DbStack.first)
 				DbStack.second = "";
+			else if (DbStack.second.GetLength() > 0)
+				obj.setCallStack(DbStack.second);
+
 			auto ReturnCode = json_deal::getStringFromCjsonObj(pJson.get(), ReturnCode_nodeName);
 			if (!ReturnCode.first)
 				ReturnCode.second = "";
+			else if (ReturnCode.second.GetLength() > 0)
+				obj.setReturnCode(ReturnCode.second);
+
 			auto Tags = json_deal::getStringFromCjsonObj(pJson.get(), Tags_nodeName);
 			if (!Tags.first)
 				Tags.second = "";
-			auto API = json_deal::getStringFromCjsonObj(pJson.get(), API_nodeName);
-			if (!API.first)
-				API.second = "";
-			linkContext cur(BusinessId.second.GetData(), TraceId.second.GetData(), SpanId.second.GetData(), ParentSpanId.second.GetData());
-
-			DbgToBeidou(cur, API.second.GetData())();
+			else if (Tags.second.GetLength() > 0)
+				obj.setTags(Tags.second);
+
+			auto deployUnitId = json_deal::getStringFromCjsonObj(pJson.get(), deployUnitId_nodeName);
+			if (!deployUnitId.first)
+				deployUnitId.second = "";
+			else if (deployUnitId.second.GetLength() > 0)
+				obj.set_deployUnitId(deployUnitId.second);
+
+			auto serviceUintId = json_deal::getStringFromCjsonObj(pJson.get(), serviceUintId_nodeName);
+			if (!serviceUintId.first)
+				serviceUintId.second = "";
+			else if (serviceUintId.second.GetLength() > 0)
+				obj.set_serviceUnitId(serviceUintId.second);
+			
+			obj();
+			
 			break;
 		}
 			

+ 8 - 0
Module/mod_chromium/MessageType.h

@@ -99,4 +99,12 @@ EndTime Not necessarily needed, end Time
 CmptId Not necessarily needed
 CmptName Not necessarily needed
 
+*/
+
+
+/*
+beidou
+
+
+
 */