视频直播开启日志投递

  1. 进入视频直播控制台
  2. 在左侧导航栏找到日志管理
  3. 在日志管理面板选择实时日志推送,并单击创建实时日志推送服务
  4. 填写Project、Logstore、区域(内网VPC)后单击下一步

    重要提示:如果您的Project和Logstore服务已存在,若您继续创建已存在的内容,创建的内容会覆盖您已有的索引和自定义报表;请谨慎创建您已有的服务,避免覆盖后影响您的线上服务。

日志投递后即可在日志服务中进行检索、查看

dataV配置源

参数 说明
名称 数据源的显示名称,您可以自由命名。
AppKey 拥有目标SLS访问权限的账号的AccessKey ID。
AppSecret 拥有目标SLS访问权限的账号的AccessKey Secret。
EndPoint 填写SLS服务的EndPoint。可参见日志服务入口文档,根据您SLS服务的网络类型和所在区域进行填写。例如VPC网络下,上海区域的EndPoint 填写为https://cn-shanghai-intranet.log.aliyuncs.com

日志服务query出来的数据在DataV中做可视化展示,下文以类别数据记录坑点

DataV要求的数据格式为json数组

  1. [
  2. {
  3. "fralychen":"fralychen",
  4. "hello":"hello"
  5. }
  6. ]

案例

pv/uv

  1. ## 查询码
  2. {
  3. "projectName": "livelog",
  4. "logStoreName": "livelog",
  5. "topic": "",
  6. "from": "1589904000",
  7. "to": "1590422400",
  8. "query": "* | select time_series(__time__, '1d', '%d' ,'0') as Time, count(1) as PV, approx_distinct(client_ip) as UV group by Time order by Time",
  9. "line": 100,
  10. "offset": 0
  11. }
  12. ## 过滤器
  13. newdata = [];
  14. for (var i = 0; i <= 4; i++) {
  15. newdata.push(data[i])
  16. };
  17. return newdata
  18. ## 响应结果
  19. [
  20. {
  21. "PV": "26328",
  22. "Time": "22",
  23. "UV": "177",
  24. "__source__": "",
  25. "__time__": "1590144338",
  26. "x": "22",
  27. "y": "177",
  28. "z": "26328"
  29. },
  30. {
  31. "PV": "939114",
  32. "Time": "23",
  33. "UV": "3881",
  34. "__source__": "",
  35. "__time__": "1590144338",
  36. "x": "23",
  37. "y": "3881",
  38. "z": "939114"
  39. },...
  40. ]

飞线

  1. ## 查询码
  2. {
  3. "projectName": "livelog",
  4. "logStoreName": "livelog",
  5. "topic": "",
  6. "from": "1589904000",
  7. "to": "1590422400",
  8. "query": "* | SELECT ip_to_geo(client_ip) as client,ip_to_geo('47.108.35.49') as server GROUP by client_ip",
  9. "line": 100,
  10. "offset": 0
  11. }
  12. ## 过滤器
  13. newdata = [];
  14. for (var i = 0; i <= 100; i++) {
  15. newdata.push(data[i])
  16. };
  17. return newdata.map(item => {
  18. if (!item) {
  19. return undefined
  20. } else {
  21. return ({
  22. ...item,
  23. client: item.client.split(',').reverse().join(','),
  24. server: item.server.split(',').reverse().join(','),
  25. })
  26. }
  27. }).filter(item => item && item.client && item.server);
  28. ## 响应结果
  29. [
  30. {
  31. "__source__": "",
  32. "__time__": "1590143782",
  33. "client": "116.388,39.9289",
  34. "server": "120.,30.2936",
  35. "to": "116.388,39.9289",
  36. "from": "120.,30.2936"
  37. },
  38. {
  39. "__source__": "",
  40. "__time__": "1590143782",
  41. "client": "114.029440,32.9794",
  42. "server": "120.,30.2936",
  43. "to": "114.029440,32.9794",
  44. "from": "120.,30.2936"
  45. },....
  46. ]

环状计数

  1. ## 查询
  2. {
  3. "projectName": "livelog",
  4. "logStoreName": "livelog",
  5. "topic": "",
  6. "from": "1589904000",
  7. "to": "1590422400",
  8. "query": "* | select ua as ua , sum(c) as count from (select case when strpos(ua , 'iphone') > 1 then 'iphone' when strpos(ua, 'ipad') > 1 then 'ipad' when strpos(ua, 'android') > 1 then 'android' when strpos(ua, 'windows') > 1 then 'windows' when strpos(ua , 'mac') > 1 then 'mac' when strpos(ua, 'linux') > 1 then 'linux' else ua end as ua , c from (select count(*) as c , lower(user_agent) as ua from log group by ua order by c desc limit 2000) ) group by ua order by count desc limit 100",
  9. "line": 100,
  10. "offset": 0
  11. }
  12. ## 过滤器
  13. data = data;
  14. newdata = [];
  15. for (var i = 0; i <= 4; i++) {
  16. newdata.push(data[i])
  17. };
  18. let countS = 0, iphone = 0;
  19. newdata.forEach(v => {
  20. countS += Number(v.count)
  21. iphone = Number(newdata[0].count)
  22. });
  23. s = [];
  24. value = {};
  25. value['aims'] = countS;
  26. value['actual'] = iphone;
  27. Object.keys(value).forEach(v => {
  28. let o = {};
  29. o[v] = value[v];
  30. s.push(o)
  31. })
  32. return s
  33. ## 响应结果
  34. [
  35. {
  36. "aims": 1523995
  37. },
  38. {
  39. "actual": 733474
  40. }
  41. ]

时间交互

  1. 添加一个时间
  2. 在右侧面板找到交互image.png
  3. 勾选启用交互功能并绑定变量
  4. 在SQL或API数据源中,通过:变量名(如:x)使用已经配置的变量,示例如下:
    • sql
      1. select :x as value
      2. select A from table where lng=x
      3. ## X为配置的变量;value为自定义字段,用来接受回调ID的值;lng和A为数据库中的字段

      源配置为SLS时,from和to写成:xxx 回调占位参数,绑定到时间上的:xxx变量以字符串的形式动态传参。

参考

时间选择器
DataV回调ID实现图表联动功能
时间戳联动传参