मेरी पिछली पोस्ट में, हमने Amazon CloudWatch SDK के माध्यम से ध्यान दिया था। स्वास्थ्य निगरानी एक बहुत ही महत्वपूर्ण विषय है जो आपके लाइव स्ट्रीमिंग एप्लिकेशन के प्रदर्शन को बनाए रखने के लिए महत्वपूर्ण है। एक अन्य महत्वपूर्ण तत्व दर्शक विश्लेषण है। इस पोस्ट में, हम स्ट्रीम व्यूअर्स में अंतर्दृष्टि प्रदान करने के कुछ तरीके देखेंगे। Amazon Interactive Video Service (Amazon IVS) लाइव स्ट्रीम हेल्थ मेट्रिक्स की निगरानी करने पर इस पोस्ट का ज्यादातर हिस्सा मेरी पिछली पोस्ट जैसा ही दिखेगा। ऐसा इसलिए है क्योंकि व्यूअर डेटा भी क्लाउडवॉच में संग्रहीत होता है और इसे SDK के माध्यम से पुनर्प्राप्त किया जा सकता है। एक अतिरिक्त तरीका है, जैसा कि हम नीचे देखेंगे, एक लाइव स्ट्रीम के वर्तमान दर्शकों की गिनती प्राप्त करने के लिए जो आपके फ्रंट एंड पर प्रदर्शित की जा सकने वाली गिनती प्राप्त करने का एक आसान तरीका है। जबकि यह पोस्ट लाइव स्ट्रीम चैनल दर्शकों पर केंद्रित है, आप अपने Amazon IVS चैट रूम जैसे और संदेशों के बारे में मैट्रिक्स भी प्राप्त कर सकते हैं। हम उसे इस पोस्ट में शामिल नहीं करेंगे, लेकिन अधिक जानने के लिए आप देख सकते हैं। नोट: ConcurrentChatConnections Delivered डॉक्स क्लाउडवॉच कंसोल के माध्यम से समवर्ती दृश्यों को पुनः प्राप्त करना यदि आप अपरिष्कृत डेटा प्राप्त किए बिना केवल व्यूअर डेटा पर एक नज़र डालना चाहते हैं, तो आप CloudWatch कंसोल के माध्यम से अपने देख सकते हैं। सबसे पहले, चुनें, फिर चुनें. ConcurrentViews सभी मीट्रिक IVS अगला, चुनें। चैनल द्वारा फिर उस पंक्ति में चेकबॉक्स चुनें जिसमें आपके किसी भी Amazon IVS चैनल के लिए शामिल हैं। ConcurrentViews स्ट्रीम सत्र के लिए समवर्ती दृश्य खोजने का दूसरा तरीका Amazon IVS कंसोल के माध्यम से है। अपना चैनल चुनें, फिर चैनल विवरण पृष्ठ से एक चुनें। स्ट्रीम आईडी स्ट्रीम सत्र के विवरण में कई चार्ट होंगे, जिनमें से एक में सत्र के होंगे। समवर्ती दृश्य क्लाउडवॉच एसडीके के माध्यम से समवर्ती दृश्यों को पुनः प्राप्त करना इस डेटा को अपने स्वयं के एप्लिकेशन में एकीकृत करने के लिए, आप क्लाउडवॉच एसडीके के माध्यम से डेटा को पुनः प्राप्त कर सकते हैं। इसी तरह स्वास्थ्य मेट्रिक्स के लिए, आपको पुनर्प्राप्त करने के लिए चैनल के , और की आवश्यकता होगी। ConcurrentViews ARN StartTime EndTime प्रारंभ और समाप्ति समय बेतरतीब ढंग से चुनने के बजाय, लाइव स्ट्रीम सत्र से प्रारंभ और समाप्ति समय चुनकर गतिशील रूप से इन समयों को प्राप्त करना समझ में आता है। आप Amazon IVS SDK के माध्यम से स्ट्रीम सत्रों की सूची प्राप्त कर सकते हैं (जैसा कि हमने में देखा था)। पिछली पोस्ट आपको हमेशा आवश्यकता होगी, यहां तक कि वर्तमान में लाइव स्ट्रीम के लिए भी। लाइव स्ट्रीम के लिए, आप मेट्रिक्स को पुनर्प्राप्त करने के लिए एसडीके का उपयोग करते समय हमेशा वर्तमान समय को के रूप में उपयोग कर सकते हैं। रिमाइंडर: EndTime EndTime JavaScript (v3) के लिए AWS SDK के माध्यम से इस डेटा को पुनः प्राप्त करने के लिए, आपको पैकेज इंस्टॉल करना होगा और क्लाइंट का एक उदाहरण बनाना होगा ( )। क्लाइंट उदाहरण बनने के बाद, आवश्यक इनपुट के लिए कुछ चर सेट करें। @aws-sdk/client-cloudwatch new CloudWatchClient() const startTime = new Date('2023-02-10T14:00:00.000Z'); const endTime = new Date('2023-02-10T14:30:00.000Z'); const arn = process.env.DEMO_CHANNEL_ARN; अगला, एक इनपुट ऑब्जेक्ट बनाएँ। इनपुट ऑब्जेक्ट में , , और की एक सरणी होगी। क्वेरी सरणी में एक एकल ऑब्जेक्ट होगा जो ( ), ( ), और फ़िल्टर किए जाने (चैनल का नाम, इस मामले में) निर्दिष्ट करता है। StartTime EndTime MetricDataQueries MetricName ConcurrentViews Namespace AWS/IVS Dimensions const getMetricDataInput = { StartTime: startTime, EndTime: endTime, MetricDataQueries: [{ Id: "concurrentviews", MetricStat: { Metric: { MetricName: "ConcurrentViews", Namespace: "AWS/IVS", Dimensions: [{ Name: "Channel", Value: arn.split("/")[1] }] }, Period: 5, Stat: "Average", } }], MaxDatapoints: 100 }; अब अनुरोध भेजें और परिणाम लॉग करें। const getMetricDataRequest = new GetMetricDataCommand(getMetricDataInput); let metrics = await cloudWatchClient.send(getMetricDataRequest); console.log(metrics); जो आउटपुट उत्पन्न करता है जो निम्न जैसा दिखता है (संक्षिप्तता के लिए बाहरी एसडीके मेटाडेटा हटा दिया गया है): { "MetricDataResults": [ { "Id": "concurrentviews", "Label": "ConcurrentViews", "Timestamps": [ "2023-02-10T14:29:00.000Z", "2023-02-10T14:28:00.000Z", "2023-02-10T14:27:00.000Z", "2023-02-10T14:26:00.000Z", "2023-02-10T14:22:00.000Z" ], "Values": [ 3, 3, 3, 3, 10 ], "StatusCode": "PartialData" } ] } चार्ट बनाने के लिए उपयोगी प्रारूप तैयार करने के लिए आप इस डेटा को फ़िल्टर, सॉर्ट और आउटपुट कर सकते हैं। const viewMetrics = metrics .MetricDataResults .find((metric) => metric.Id === 'concurrentviews'); const viewValues = viewMetrics.Values.reverse(); const viewData = []; viewMetrics .Timestamps .reverse() .forEach((t, i) => { viewData.push({ timestamp: t, concurrentviews: viewValues[i], }) }); console.log(JSON.stringify(viewData)); जो वस्तुओं की एक सरणी पैदा करता है। [ { "timestamp": "2023-02-10T14:22:00.000Z", "concurrentviews": "10.00" }, { "timestamp": "2023-02-10T14:26:00.000Z", "concurrentviews": "3.00" }, ... ] आप इस डेटा का उपयोग हमारी पसंदीदा चार्टिंग लाइब्रेरी (या मेरे जैसा एक सामान्य ऑनलाइन चार्ट जनरेटर) के साथ कर सकते हैं। CloudWatch SDK के साथ चार्ट छवियां बनाना पिछली पोस्ट में, हमने क्लाउडवॉच एसडीके के माध्यम से सीधे इमेज जेनरेट करने पर ध्यान दिया था। यह तरीका आपके व्यू मेट्रिक्स पर भी लागू होता है। const startTime = new Date('2023-02-10T14:00:00.000Z'); const endTime = new Date('2023-02-10T14:25:00.000Z'); const arn = process.env.DEMO_CHANNEL_ARN; const cloudWatchClient = new CloudWatchClient(); const getMetricWidgetImageInput = { MetricWidget: JSON.stringify({ metrics: [ [ "AWS/IVS", "ConcurrentViews", "Channel", arn.split("/")[1] ] ], start: startTime, end: endTime, period: 5, stat: "Average" }) }; const getMetricWidgetImageRequest = new GetMetricWidgetImageCommand(getMetricWidgetImageInput); const metricImage = await cloudWatchClient.send(getMetricWidgetImageRequest); जो कुंजी के साथ एक ऑब्जेक्ट लौटाता है जिसमें एक सरणी बफ़र ( ) होता है जिसमें चार्ट छवि होती है। MetricWidgetImage Uint8Array { "MetricWidgetImage": { "0": 137, "1": 80, "2": 78, ... } } इस सरणी बफर को बेस 64 स्ट्रिंग में बदलने के लिए: const buffer = Buffer.from(metricImage.MetricWidgetImage); console.log(buffer.toString('base64')); जो हमें देता है: iVBORw0KGgoAAAANSUhEUgAAAlgAAAGQCAIAAAD9V4nPAAAACXBIWXMA... ऐसा दिखने वाली छवि में परिवर्तित किया जा सकता है: किसी चैनल के लिए वर्तमान लाइव दृश्य सत्रों को पुनः प्राप्त करना जैसा कि ऊपर उल्लेख किया गया है, आप AWS SDK में Amazon IVS क्लाइंट मॉड्यूल के माध्यम से किसी चैनल पर सक्रिय लाइव स्ट्रीम के लिए वर्तमान दृश्य सत्रों की गिनती आसानी से प्राप्त कर सकते हैं। इसके लिए मेथड का इस्तेमाल करें। GetStream import { GetStreamCommand, IvsClient } from "@aws-sdk/client-ivs"; const client = new IvsClient(); const getStreamCommandInput = { channelArn: process.env.DEMO_CHANNEL_ARN, }; const getStreamRequest = new GetStreamCommand(getStreamCommandInput); const getStreamResponse = await client.send(getStreamRequest); console.log(getStreamResponse); जो निम्न जैसा आउटपुट उत्पन्न करता है। { "stream": { "channelArn": "arn:aws:ivs:us-east-1:[redacted]:channel/[redacted]", "health": "HEALTHY", "playbackUrl": "https://[redacted].us-east-1.playback.live-video.net/api/video/v1/us-east-1.[redacted].channel.x4aGUUxIp5Vw.m3u8", "startTime": "2023-02-10T15:46:36.000Z", "state": "LIVE", "streamId": "st-[redacted]", "viewerCount": 5 } } प्रॉपर्टी पर ध्यान दें, जो वर्तमान लाइव स्ट्रीम के व्यू सेशन की लाइव काउंट है। viewerCount सारांश इस पोस्ट में, हमने सीखा कि कैसे CloudWatch और Amazon IVS SDK के माध्यम से हमारे Amazon IVS लाइव स्ट्रीम के लिए व्यू डेटा को पुनः प्राप्त किया जाए। अधिक जानने के लिए, देखें। दस्तावेज़ ताज