does kurento have stats logs?

726 views
Skip to first unread message

henry...@umbocv.com

unread,
Aug 9, 2015, 9:27:22 PM8/9/15
to kurento
Does kms server supports some way to dump internal state information like number of connections and bandwidth usage? Etc...

The regular log files I checked but didn't see this.

Thanks

Henry

Ivan Gracia

unread,
Aug 11, 2015, 6:00:58 AM8/11/15
to Kurento Public
Hi Henry,

KMS does indeed provide statistics (probably metrics would be better term here) for each media element, but these don't get collected in the server. It is up to you as to what to do with those figures, whether you want to store them and calculate meas, cumulative... You can access statistics for some media elements (RTP and WebRTC endpoints basically) in KMS6.

Ivan Gracia




--
You received this message because you are subscribed to the Google Groups "kurento" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kurento+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

ma...@hassman.org

unread,
Sep 15, 2015, 3:34:33 AM9/15/15
to kurento
Hi Ivan,

How can I access endpoint metrics?

I'm using the javascript client and kms v6.0.

Here's what's exposed to me for webrtc endpoints:
{ domain: null,
  _events:
   { removeListener: [Function],
     newListener: [Function],
     _describe: [Function],
     _rpc: [Function: encodeRpc],
     release: { [Function: g] listener: [Function] },
     MediaStateChanged: [Function],
     OnIceCandidate: [Function] },
  _maxListeners: 10,
  id: 'b6355f15-0ecb-42ea-a061-f8ea921ab7ee_kurento.MediaPipeline/02513a7e-fb02-4010-a34a-4c3a7dd18831_kurento.WebRtcEndpoint' }

rtp endpoints are the same, but lacking onicecandidate and mediastatechange functions.

Any guidance would be appreciated..
Thnx!

Ivan Gracia

unread,
Sep 16, 2015, 4:48:39 AM9/16/15
to Kurento Public
All media elements have the getStats method, which you can use for that.

Ivan Gracia


Mark Hassman

unread,
Sep 17, 2015, 11:37:55 PM9/17/15
to kur...@googlegroups.com
Thank you for the pointer.. have webrtc stats working now.
However, I'm unable to retrieve rtp endpoint stats with the same methodology - tells me getStats() isn't valid. Is there a different api for rtp stats?
Thnx!
 
-Mark


From: kur...@googlegroups.com [mailto:kur...@googlegroups.com] On Behalf Of Ivan Gracia
Sent: Wednesday, September 16, 2015 4:48 AM
To: Kurento Public
Subject: Re: [kurento-public] does kurento have stats logs?

Ivan Gracia

unread,
Sep 18, 2015, 7:29:39 AM9/18/15
to Kurento Public
getStats() should be there too, as they have the same base class. Are you getting any errors when you invoke that? If yes, where (client, server or app server)? 

Also, please provide version of KMS and libraries used.

Ivan Gracia


Mark Hassman

unread,
Oct 4, 2015, 1:11:07 PM10/4/15
to kur...@googlegroups.com
Hi Ivan,
 
Apologies on my delayed response.. took a while to get back to this...
 
Sice my earlier tests (kurento v6.0), I've upgraded to v6.1.1. However, the issue remains.
Not sure if this is relevant, but my path is this:  webrtc->kurento->rtp->external-encoder/segmenter
 
 
Log specifics:
 
------------------------
create rtp endpoint:
 
2015-10-04 09:36:16,313480 948 [0x00007f7281762700]   debug KurentoWebSocketTransport WebSocketTransport.cpp:484 processMessage()  Message: >{"id":63,"jsonrpc":"2.0","method":"create","params":{"constructorParams":{"mediaPipeline":"59b0726e-8f87-40ca-b0de-75e1879d9094_kurento.MediaPipeline"},"sessionId":"7f4fdedd-7d73-44bc-8e2c-9e07af70bdff","type":"RtpEndpoint"}}
<
2015-10-04 09:36:16,337706 948 [0x00007f7281762700]   debug KurentoWebSocketTransport WebSocketTransport.cpp:486 processMessage()  Response: >{"id":63,"jsonrpc":"2.0","result":{"sessionId":"7f4fdedd-7d73-44bc-8e2c-9e07af70bdff","value":"59b0726e-8f87-40ca-b0de-75e1879d9094_kurento.MediaPipeline/f24125d4-4cac-49b9-8eb7-8adf2a3b639b_kurento.RtpEndpoint"}}
<
2015-10-04 09:36:16,341061 948 [0x00007f7282764700]   debug KurentoWebSocketTransport WebSocketTransport.cpp:484 processMessage()  Message: >{"id":64,"jsonrpc":"2.0","method":"invoke","params":{"object":"59b0726e-8f87-40ca-b0de-75e1879d9094_kurento.MediaPipeline/f24125d4-4cac-49b9-8eb7-8adf2a3b639b_kurento.RtpEndpoint","operation":"processOffer","operationParams":{"offer":"v=0\no=- 144397736160086970 144397736160086970 IN IP4 216.129.119.218\ns= \nc=IN IP4 216.129.119.218\nt=0 0\nm=audio 5069 RTP/AVP 0\na=rtpmap:0 PCMU/8000\na=recvonly\nm=video 5071 RTP/AVP 101\na=rtpmap:101 H264/90000\na=recvonly\n"},"sessionId":"7f4fdedd-7d73-44bc-8e2c-9e07af70bdff"}}
<
2015-10-04 09:36:16,506033 948 [0x00007f7282764700]   debug KurentoWebSocketTransport WebSocketTransport.cpp:486 processMessage()  Response: >{"id":64,"jsonrpc":"2.0","result":{"sessionId":"7f4fdedd-7d73-44bc-8e2c-9e07af70bdff","value":"v=0\r\no=- 3652965376 3652965376 IN IP4 0.0.0.0\r\ns=Kurento Media Server\r\nc=IN IP4 0.0.0.0\r\nt=0 0\r\nm=audio 53542 RTP/AVP 0\r\na=rtpmap:0 PCMU/8000\r\na=sendonly\r\na=ssrc:3638207732 cname:user4220116033@host-b38af6bf\r\nm=video 45102 RTP/AVP 101\r\na=rtpmap:101 H264/90000\r\na=sendonly\r\na=ssrc:4011460474 cname:user4220116033@host-b38af6bf\r\n"}}
<
 
------------------------
connect webrtc and rtp endpoints:
 
2015-10-04 09:36:16,511376 948 [0x00007f727bfff700]   debug KurentoWebSocketTransport WebSocketTransport.cpp:484 processMessage()  Message: >{"id":65,"jsonrpc":"2.0","method":"invoke","params":{"object":"59b0726e-8f87-40ca-b0de-75e1879d9094_kurento.MediaPipeline/712d19ae-f99d-427d-9faf-6bdd2013f613_kurento.WebRtcEndpoint","operation":"connect","operationParams":{"sink":"59b0726e-8f87-40ca-b0de-75e1879d9094_kurento.MediaPipeline/f24125d4-4cac-49b9-8eb7-8adf2a3b639b_kurento.RtpEndpoint"},"sessionId":"7f4fdedd-7d73-44bc-8e2c-9e07af70bdff"}}
<
2015-10-04 09:36:16,511853 948 [0x00007f727bfff700]   debug KurentoMediaElementImpl   MediaElementImpl.cpp:636 connect()  Connecting 59b0726e-8f87-40ca-b0de-75e1879d9094_kurento.MediaPipeline/712d19ae-f99d-427d-9faf-6bdd2013f613_kurento.WebRtcEndpoint -> 59b0726e-8f87-40ca-b0de-75e1879d9094_kurento.MediaPipeline/f24125d4-4cac-49b9-8eb7-8adf2a3b639b_kurento.RtpEndpoint params AUDIO
2015-10-04 09:36:16,570652 948 [0x00007f727bfff700]   debug KurentoMediaElementImpl   MediaElementImpl.cpp:636 connect()  Connecting 59b0726e-8f87-40ca-b0de-75e1879d9094_kurento.MediaPipeline/712d19ae-f99d-427d-9faf-6bdd2013f613_kurento.WebRtcEndpoint -> 59b0726e-8f87-40ca-b0de-75e1879d9094_kurento.MediaPipeline/f24125d4-4cac-49b9-8eb7-8adf2a3b639b_kurento.RtpEndpoint params VIDEO
2015-10-04 09:36:16,633987 948 [0x00007f727bfff700]   debug KurentoMediaElementImpl   MediaElementImpl.cpp:636 connect()  Connecting 59b0726e-8f87-40ca-b0de-75e1879d9094_kurento.MediaPipeline/712d19ae-f99d-427d-9faf-6bdd2013f613_kurento.WebRtcEndpoint -> 59b0726e-8f87-40ca-b0de-75e1879d9094_kurento.MediaPipeline/f24125d4-4cac-49b9-8eb7-8adf2a3b639b_kurento.RtpEndpoint params DATA
2015-10-04 09:36:16,634365 948 [0x00007f727bfff700]   debug KurentoWebSocketTransport WebSocketTransport.cpp:486 processMessage()  Response: >{"id":65,"jsonrpc":"2.0","result":{"sessionId":"7f4fdedd-7d73-44bc-8e2c-9e07af70bdff","value":null}}
<
----------------------

successful webrtc endpoint getStats():
 
2015-10-04 09:39:53,118390 948 [0x00007f7283f67700]   debug KurentoWebSocketTransport WebSocketTransport.cpp:484 processMessage()  Message: >{"id":150,"jsonrpc":"2.0","method":"invoke","params":{"object":"59b0726e-8f87-40ca-b0de-75e1879d9094_kurento.MediaPipeline/712d19ae-f99d-427d-9faf-6bdd2013f613_kurento.WebRtcEndpoint","operation":"getStats","operationParams":{},"sessionId":"7f4fdedd-7d73-44bc-8e2c-9e07af70bdff"}}
<
2015-10-04 09:39:53,119406 948 [0x00007f7283f67700]   debug KurentoWebSocketTransport WebSocketTransport.cpp:486 processMessage()  Response: >{"id":150,"jsonrpc":"2.0","result":{"sessionId":"7f4fdedd-7d73-44bc-8e2c-9e07af70bdff","value":{"7db177bf-215e-4bea-aa14-8799f05abd7a":{"__module__":"kurento","__type__":"RTCInboundRTPStreamStats","associateStatsId":"","bytesReceived":34162611,"codecId":"","firCount":3,"fractionLost":0,"id":"7db177bf-215e-4bea-aa14-8799f05abd7a","isRemote":false,"jitter":0.0016111111035570502,"mediaTrackId":"","nackCount":11,"packetsLost":0,"packetsReceived":31997,"pliCount":0,"remb":0,"sliCount":0,"ssrc":"1027543471","timestamp":1443976793,"transportId":"","type":"inboundrtp"},"fa242e4b-61b2-42f5-8c27-4ccc63bd88f0":{"__module__":"kurento","__type__":"RTCInboundRTPStreamStats","associateStatsId":"","bytesReceived":419786,"codecId":"","firCount":0,"fractionLost":0,"id":"fa242e4b-61b2-42f5-8c27-4ccc63bd88f0","isRemote":false,"jitter":0.0043124998919665813,"mediaTrackId":"","nackCount":0,"packetsLost":0,"packetsReceived":10975,"pliCount":0,"remb":0,"sliCount":0,"ssrc":"535383901","timestamp":1443976793,"transportId":"","type":"inboundrtp"}}}}
-----------------------
 
rtp endpoint getStats() returns null:
 
2015-10-04 09:39:53,125074 948 [0x00007f7283f67700]   debug KurentoWebSocketTransport WebSocketTransport.cpp:484 processMessage()  Message: >{"id":151,"jsonrpc":"2.0","method":"invoke","params":{"object":"59b0726e-8f87-40ca-b0de-75e1879d9094_kurento.MediaPipeline/f24125d4-4cac-49b9-8eb7-8adf2a3b639b_kurento.RtpEndpoint","operation":"getStats","operationParams":{},"sessionId":"7f4fdedd-7d73-44bc-8e2c-9e07af70bdff"}}
<
2015-10-04 09:39:53,125537 948 [0x00007f7283f67700]   debug KurentoWebSocketTransport WebSocketTransport.cpp:486 processMessage()  Response: >{"id":151,"jsonrpc":"2.0","result":{"sessionId":"7f4fdedd-7d73-44bc-8e2c-9e07af70bdff","value":null}}
<
------------------------
 
 
 
 
# apt-cache showpkg kurento-media-server-6.0
Package: kurento-media-server-6.0
Versions:
6.1.1.trusty (/var/lib/apt/lists/ubuntu.kurento.org_dists_trusty_kms6_binary-amd64_Packages) (/var/lib/dpkg/status)
 Description Language:
                 File: /var/lib/apt/lists/ubuntu.kurento.org_dists_trusty_kms6_binary-amd64_Packages
                  MD5: 4ffd6c93aad3db63d24cb40393e99fc0
 

Reverse Depends:
  kurento-server,kurento-media-server-6.0 6.1.1.trusty
  kurento-media-server-6.0-dev,kurento-media-server-6.0 6.1.1.trusty
  kurento-media-server-6.0-dbg,kurento-media-server-6.0 6.1.1.trusty
Dependencies:
6.1.1.trusty - kms-core-6.0 (2 6.1.0) kms-jsonrpc-1.0 (0 (null)) kmsjsoncpp (0 (null)) libboost-filesystem1.55.0 (0 (null)) libboost-log1.55.0 (0 (null)) libboost-program-options1.55.0 (0 (null)) libboost-system1.55.0 (0 (null)) libboost-thread1.55.0 (0 (null)) libc6 (2 2.14) libgcc1 (2 1:4.1.1) libglib2.0-0 (2 2.41.1) libglibmm-2.4-1c2a (2 2.36.2) libgstreamer1.5-0 (2 1.5.91~20151001151012.86.g29e3bbd.trusty) librabbitmq1 (2 0.4.1) libsigc++-2.0-0c2a (2 2.0.2) libssl1.0.0 (2 1.0.0) libstdc++6 (2 4.8.1) kms-elements-6.0 (2 6.1.0) kms-filters-6.0 (2 6.1.0) kurento (0 (null)) kurento:i386 (0 (null)) kurento (0 (null)) kurento:i386 (0 (null)) kurento-media-server (0 (null)) kurento-media-server:i386 (0 (null)) kurento (0 (null)) kurento:i386 (0 (null)) kurento-media-server (0 (null)) kurento-media-server:i386 (0 (null))
 
from kurento-client package.json:
 
 
 


From: kur...@googlegroups.com [mailto:kur...@googlegroups.com] On Behalf Of Ivan Gracia
Sent: Friday, September 18, 2015 7:29 AM

Mark Hassman

unread,
Oct 4, 2015, 1:12:37 PM10/4/15
to kur...@googlegroups.com
Hit send too soon..
 
from kurento-client package.json:
{
  "name": "kurento-client",
  "version": "6.1.0",
  "description": "Media API for the Kurento Web SDK",
  "homepage": "http://www.kurento.org",
  "license": "LGPL",
  "author": {
    "name": "Kurento",
    "email": "in...@kurento.com",
    "url": "http://kurento.org"
  },
  "contributors": [
    {
      "name": "Jesús Leganés Combarro 'piranna'",
      "email": "pir...@gmail.com",
      "url": "http://pirannafs.blogspot.com.es"
    }
  ],
  "main": "./lib/index.js",
  "scripts": {
    "coveralls": "scripts/coveralls",
    "coverallsBrowser": "scripts/coveralls -- testBrowser",
    "test": "scripts/test",
    "testBrowser": "scripts/testBrowser"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/kurento/kurento-client-js.git"
  },
  "bugs": {
    "email": "kur...@googlegroups.com"
  },
  "keywords": [
    "API",
    "Kurento",
    "WebRTC"
  ],
  "dependencies": {
    "async": "~1.2.1",
    "checktype": "^0.0.7",
    "error-tojson": "0.0.1",
    "es6-promise": "^2.3.0",
    "extend": "^2.0.1",
    "inherits": "~2.0.1",
    "kurento-client-core": "6.1.0",
    "kurento-client-elements": "6.1.0",
    "kurento-client-filters": "6.1.0",
    "kurento-jsonrpc": "5.0.5",
    "promisecallback": "0.0.4",
    "reconnect-ws": "github:kurentoforks/reconnect-ws#0.0.1"
  },
 

 

From: kur...@googlegroups.com [mailto:kur...@googlegroups.com] On Behalf Of Mark Hassman
Sent: Sunday, October 04, 2015 1:11 PM
To: kur...@googlegroups.com
Subject: RE: [kurento-public] does kurento have stats logs?

Ivan Gracia

unread,
Oct 8, 2015, 5:07:06 AM10/8/15
to Kurento Public
Hi Mark,

We had a slight refactoring regression, that broke the getStats method in RTP endpoint. Could you please update to the latest development version and check again? It should be fixed now.

Ivan Gracia


Reply all
Reply to author
Forward
0 new messages