摘要:分鐘,通過管道磁帶應用程序分析現在,讓我告訴你為什么這個前言本不是一個好主意,因為它不是。此外,沒有多少人會使用該應用程序。目前我有兩種類型的分析用于應用程序啟動時發送的分析,以及錯誤用于發生錯誤時發送的分析。
5分鐘,通過Microsoft Flow管道磁帶應用程序分析
現在,讓我告訴你為什么這個前言本不是一個好主意,因為它不是。
對于我非常具體的用例,我想跟蹤我的桌面(VB.NET ......我知道,我正在學習C#)應用程序是在客戶端計算機上啟動的,以及在使用過程中發生的任何錯誤。我不需要任何重要的分析,而且我沒有能力構建RESTful API端點來接收分析(企業網絡等)。此外,沒有多少人會使用該應用程序。
理想情況下,可以構建一個可以使用Django,RoR或任何其他Web框架處理這些請求的API。它真的是要走的路,因為它更加靈活,你可以提供大量的資源,而且真的......這是一個漂亮的管道膠帶,超強力的解決方案。
另一方面,我需要一個快速而骯臟的解決方案來測試我的概念證明,并且沒有足夠的資源來設置Web服務器。所以,不用多說,我的解決方案!
首先,使用“ 收到HTTP請求時”觸發器創建新流。
列表中的第一個!
您可以為流指定所需的任何JSON模式。目前,我有以下架構:
datetime ?- 這個應該是相對不言自明的。
type ?- 目前我有兩種類型的分析:boot? - ?用于應用程序啟動時發送的分析,以及錯誤? -?用于發生錯誤時發送的分析。
error_message ?- 也很明顯不言自明。
error_value ?- 發生錯誤的堆棧跟蹤。
application_version ?- 再次,是的。
ip ?- 實際上用于操作系統版本(我需要更改它,我知道)
guid ?- 應用程序生成的通用標識符(可以輕松跟蹤有多少用戶發送分析)
{
? "datetime": "3/28/2019 9:16:58PM",
? "type": "boot",
? "error_message": "",
? "error_value": "",
? "application_version": "1.1.0.0",
? "ip": "Microsoft Windows NT 6.1.7601 Service Pack 1",
? "guid": "bc6a61af-5ddf-4cb3-a9dc-b734b4c93957"
}
我的示例有效負載,注意我不可思議的懶惰,沒有將ip更新為相關的名稱,如版本。
您可以快速將樣本JSON有效負載放在一起并將其提供給Flow觸發器。它會生成它自己的架構來處理它,它有多整潔!
轉儲示例JSON有效內容后,您的流應該是什么樣子。(注意:在保存項目之前,不會填寫HTTP POST URL)
現在,所有要做的就是將數據放入您想要使用的任何存儲介質中!Flow具有Postgres,MySQL,SQL Server,一堆Azure內容的連接器,甚至更多。您甚至可以使用本地數據網關將本地SQL Server實例連接到流!(https://docs.microsoft.com/en-us/power-bi/service-gateway-onprem)。
為了這個例子,我創建了一個SharePoint列表來快速存儲數據。但嚴肅地說,這些數據應存儲在某種適當的數據庫中。
SharePoint列表的示例模式。不要使用SharePoint,它絕對不是存儲這些數據的正確方法!
將流量連接到您選擇的數據存儲也非常容易。只需從列表中選擇它,您就可以神奇地顯示示例模式中的所有JSON對象,以便將它們添加進來!
非常簡單!
我還使流程在成功接收請求后返回HTTP狀態代碼200。它位于數據存儲的并行分支上。您可以讓它返回您想要的任何內容,但是我保持簡單,因為應用程序確實不需要從服務器獲取任何數據。
返回... .Success的HTTP狀態代碼200!
所以,在你完成所有這些之后,你應該準備好節省流量。這將生成可用于POST到流的URL。如果提交的JSON模式與提供的樣本有效負載不匹配,則流程甚至會返回4XX狀態代碼,以便讓您知道出現問題!如果您已經按照這個快速教程進行操作,那么您的流程應該類似于此(除非沒有SharePoint!):
希望你的流程與此非常相似!
您現在可以啟動您喜歡的編程語言,或Postman來測試API端點!Postman非常方便您測試您的新奇,管道膠帶的想法是否有效。只需復制并粘貼保存流時生成的HTTP POST URL,然后將示例模式粘貼到請求正文中,如下所示:
包含我的樣本有效負載的POST請求 服務器響應HTTP狀態碼200!成功!
如果您查看存儲數據的任何位置,您應該會看到一個包含您發送到服務器的數據的新條目!
雙重成功!有用!
您還可以實時測試流量,并調查早期彈出的任何問題。只需按下右上角的測試按鈕,然后使用Postman發送POST。
好哇!
就是這樣。管道膠帶分析在5分鐘以內!你也可以使用Flow做更多的事情。您可以在其中添加一些if語句來分隔不同類型的分析并將它們存儲在不同的表中,或者在發出特定類型的請求時將通知發送到您的電子郵件。天空是極限!
但是要警惕這種方法的缺陷。它絕對不是為大量數據而設計的,我不確定該URL是否是100%靜態的。無論哪種方式,只要您認識到陷阱,這對于一些簡單的分析來說就是一個簡單的解決方案。
示例代碼
下面是VB和Python中用于項目的一些示例代碼!
快樂編碼:)
Public Class ApplicationTracking
??? Public Sub New()
??? "Do nothing, I"m sure you could do something neat here :)
??? End Sub
??? Public Async Function Post(Optional callType As String = "boot", Optional errorMsg As String = "", Optional errorVal As String = "") As Task(Of Net.HttpStatusCode)
??????? "Generates JSON POST string
??????? Dim url As String = "YOUR MICROSOFT FLOW URL HERE"
??????? Dim postData As String = """datetime"": ""{0}"", ""type"": ""{1}"", ""error_message"": ""{2}"", ""error_value"": ""{3}"", ""application_version"": ""{4}"", ""ip"": ""{5}"", ""guid"": ""{6}"""
??????? postData = String.Format(postData, DateTime.Now.ToString(), "boot", errorMsg, errorVal, "1.1.0.0", Environment.OSVersion, My.Settings.Guid)
??????? postData = "{" & postData & "}"
???????
??????? "Generates Request content w/ JSON string
??????? Dim content As New Net.Http.StringContent(postData, Text.Encoding.UTF8, "application/json")
??????? content.Headers.ContentType = New Net.Http.Headers.MediaTypeHeaderValue("application/json")
??????? "Sends the POST and returns the HTTP Status Code
??????? Using client As New System.Net.Http.HttpClient
??????????? Dim r As Net.Http.HttpResponseMessage = Await client.PostAsync(url, content)
??????????? Return r.StatusCode
??????? End Using
??? End Function
End Class
用于跟蹤的VB.NET類(需要引用System.Web.Extensions)
import requests
import datetime as dt
import platform
class AppAnalytics:
??? def __init__(self):
??????? #Nothing at the moment :)
??????? pass
??? def post(self, guid, post_type="boot", error_message="", error_value="", app_version="1.1.0.0"):
??????? payload = {
??????????? "datetime": dt.datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
??????????? "type": post_type,
??????????? "error_message": error_message,
??????????? "error_value": error_value,
??????????? "application_version": app_version,
??????????? "ip": platform.platform(),
??????????? "guid": str(guid)
??????? }
??????? flow_url = "YOUR FLOW URL HERE"
??????? #Posts the payload to the url, requests automatically encodes the dictionary :)
??????? r = requests.post(flow_url, json=payload)
??????? #Returns the HTTP Status Code (You can use this to check it sent the data correctly)
??????? return r.status_code
用于跟蹤的Python類
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/7132.html
摘要:分鐘,通過管道磁帶應用程序分析現在,讓我告訴你為什么這個前言本不是一個好主意,因為它不是。此外,沒有多少人會使用該應用程序。目前我有兩種類型的分析用于應用程序啟動時發送的分析,以及錯誤用于發生錯誤時發送的分析。5分鐘,通過Microsoft Flow管道磁帶應用程序分析 現在,讓我告訴你為什么這個前言本不是一個好主意,因為它不是。 對于我非常具體的用例,我想跟蹤我的桌面(...
摘要:如何使用數據加速層軟件定義的廣域網備份到云端,以及人工智能,都是這個城市的話題,但它們在快速云備份和恢復方面有其局限性。因此,組織可以使用帶有廣域網數據加速覆蓋的廣域網來關注服務的連續性,而不必處理災難恢復。如何使用WAN數據加速層tweet(tweet)軟件定義的廣域網(sd-wans)備份到云端,以及人工智能,都是這個城市的話題,但它們在快速云備份和恢復方面有其局限性。然而,在sd-wa...
摘要:在數據緩沖區已超過或寫入隊列當前正忙的任何情況下,將返回。當返回值時,背壓系統啟動,它會暫停傳入的流發送任何數據,并等待消費者再次準備就緒,清空數據緩沖區后,將發出事件并恢復傳入的數據流。 流中的背壓 在數據處理過程中會出現一個叫做背壓的常見問題,它描述了數據傳輸過程中緩沖區后面數據的累積,當傳輸的接收端具有復雜的操作時,或者由于某種原因速度較慢時,來自傳入源的數據就有累積的趨勢,就像...
摘要:云是長期數據保留的下一個目標嗎看看中的關鍵供應商,對于這個時代的任何組織來說,數據是如何對業務需求和運營至關重要的,這是一個現實。一致性一致性允許您利用云和磁帶來根據組織的要求歸檔數據。云是長期數據保留的下一個目標嗎?看看spacetweet中的關鍵供應商,對于這個時代的任何組織來說,數據是如何對業務需求和運營至關重要的,這是一個現實。Be it Education,Finance,Heal...
閱讀 2815·2021-10-13 09:48
閱讀 3776·2021-10-13 09:39
閱讀 3586·2021-09-22 16:04
閱讀 1816·2021-09-03 10:48
閱讀 837·2021-08-03 14:04
閱讀 2358·2019-08-29 15:18
閱讀 3400·2019-08-26 12:19
閱讀 2869·2019-08-26 12:08