通过sdk查看oss投递(新版)延迟情况最佳实践

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 在投递任务中,日志服务会将运行日志写入到给定的logstore中,因而可以使用SDK来查看投递任务的当前状态,并进行批量查询,以了解多个Project和投递任务的状态。下面以查看oss投递的延迟为例,介绍客户提供操作步骤和常见的使用场景,以帮助客户更加方便地监控和管理投递任务。

操作流程

一、前提

  1.本文描述不做特殊说明,默认都是使用RAM账户登陆控制台更多创建或获取RAM用户信息操作,请参见准备RAM用户

  1. 请确保已具备使用OSS投递(新版)的权限。更多有关OSS投递权限的相关操作,请参考授权概述
  2. 请确保您已经有创建好的OSS投递任务。更多有关创建OSS投递任务的相关操作,请参考创建OSS投递任务(新版)
  3. 请确保您已经开通运行日志。更多关于运行日志的相关操作,请参考管理服务日志

二、数据投递概览查看投递任务进度落后状态

1.登录日志服务控制台

2.在Project列表区域,单击目标Project。

3.点击左侧任务管理 -> 数据投递新版 -> 特定oss投递(新版)任务

图片.png

4.浏览右侧数据投递概览 -> 进入落后

图片.png

说明 :

      进度落后的横轴表示时间,纵轴表示落后的秒数,右侧则是各个shard,图中天蓝色直线表示,shard#27在23/07/07 13:39时投递进度落后100.75k秒

三、internal-diagnostic_log中通过sql查询投递任务进度落后状态

说明:

     创建OSS投递任务后,投递过程中的内部日志信息会存储在internal-diagnostic_log logstore中, 通过分析该日志,您可以观测投递的状态 关于内部日志的详细字段信息,请参考日志类型

1.点击进度落后右上角  -> 预览查询语句

图片.png

2.右侧弹出预览查询语句方框 -> 点击查询分析  ·    图片.png

3.跳转至 Internal-diagnostic_log logstore , 右侧可选时间范围 -> 查询分析 , 下方预览图表的lags展示延迟情况

图片.png

说明 :

      该sql的中 (__topic__: etl_metrics and metric_type: ConnectorMetrics and "_etl_:connector_meta.action": ingest)and (project:your-project and job_name:job-test) 是搜索语句限定查询的范围,剩余sql为分析语句,用于聚合出精度精确到一分钟,某个shard的平均延时


图片.png

表示shard#5 存在119795.0s的延迟

四、通过sdk的GetLogs接口对internal-diagnostic_log中的内部日志进行查询

1.安装python aliyun log sdk , 如果需要其他语言的sdk请参考SDK参考概述

2.使用第三步中的sql,使用GetLogs查询延迟日志

importtimefromaliyun.logimportLogClient, GetLogsRequestendpoint=''accessKeyId=''accessKeySecret=''project='test-project'logstore='internal-diagnostic_log'logClient=LogClient(endpoint, accessKeyId, accessKeySecret)
end=time.time()
start=end-60query='''(__topic__: etl_metricsand metric_type: ConnectorMetricsand "_etl_:connector_meta.action": ingest)and (project:test-project and job_name:your_oss_sink_job_name)| select  *FROM  (    select      time_series(__time__, '1m', '%y/%m/%d %H:%i', '0') as dt,      "_etl_:connector_meta.task_name" as task,      avg("_etl_:connector_metrics.lags") as lags    FROM      log    group by      dt,      task    order by      dt    limit      100000  )where  task is not null '''request=GetLogsRequest(project, logstore, start, end, '', query=query, line=3, offset=0, reverse=False)
response=logClient.get_logs(request)
logs=response.get_logs()
forloginlogs:
print(log.log_print())

image.png


五、通过sdk批量查看多个logstore的投递延迟情况

1 假设当前到project 内有多个投递任务 ,多个投递任务的运行日志保存在当前project下的internal-diagnostic_log (请确保已开通运行日志)

image.png

2 利用sdk批量查询oss投递任务的名称

fromaliyun.logimportLogClientendpoint=""project=""logstore=""accessKeyId=""accessKeySecret=""logClient=LogClient(endpoint, accessKeyId, accessKeySecret)
# 利用sdk获取当前project下度所有导出任务listExportResponse=logClient.list_export(project)
exportTaskList=listExportResponse.get_exports()
# 将oss投递任务筛选出来oss_sink_export_list= []
forexportinexportTaskList:
ifexport.get("configuration", {}).get("sink", {}).get("type") =="AliyunOSS":
oss_sink_export_list.append(export)
# 获取所有oss投递job度名称oss_sink_job_name_list= []
foross_sinkinoss_sink_export_list:
oss_sink_job_name_list.append(oss_sink['name'])
forjob_nameinoss_sink_job_name_list:
print(job_name)


3 假设第2步中oss投递job名称列表是[job-168****360-*****1,job-168****360-*****2,job-168****360-*****3] , 那么查询的sql 可以是 :

(__topic__: etl_metrics
and metric_type: ConnectorMetrics
and"_etl_:connector_meta.action": ingest)and(project:changqi-test-0608and(job_name:job-168****360-*****1or job_name:job-168****360-*****2or job_name:job-168****360-*****2))|select*FROM(select time_series(__time__,'1m','%y/%m/%d %H:%i','0')as dt,"_etl_:connector_meta.task_name"as task, job_name as job_name, avg("_etl_:connector_metrics.lags")as lags
FROM log
groupby dt, job_name, task
orderby dt
limit100000)where task isnotnull


  1. 第3步中的sql可以利用sdk的Getlogs接口进行oss投递延时数据的查询
importtimefromaliyun.logimportLogClient, GetLogsRequestendpoint=''accessKeyId=''accessKeySecret=''project='test-project'logstore='internal-diagnostic_log'logClient=LogClient(endpoint, accessKeyId, accessKeySecret)
end=time.time()
start=end-60query='''(__topic__: etl_metricsand metric_type: ConnectorMetricsand "_etl_:connector_meta.action": ingest)and (project:test-project and (job_name:job-168****360-*****1 or job_name:job-168****360-*****2 or job_name:job-168****360-*****2))| select *FROM ( select time_series(__time__, '1m', '%y/%m/%d %H:%i', '0') as dt, "_etl_:connector_meta.task_name" as task,  job_name as job_name, avg("_etl_:connector_metrics.lags") as lags FROM log group by dt, job_name, task, order by dt limit 100000 )where task is not null  '''request=GetLogsRequest(project, logstore, start, end, '', query=query, line=3, offset=0, reverse=False)
response=logClient.get_logs(request)
logs=response.get_logs()
forloginlogs:
print(log.log_print())


异常信息说明

oss投递任务任务监控大盘异常

  出现查询失败和无数据展示的原因可能是任务运行日志索引被删除或未更新,或者未开通任务运行日志采集。解决方案包括在CloudLens for SLS中重置索引和开通任务运行日志采集。任务运行日志存储在指定Project下的internal-diagnostic_log Logstore中,可通过日志服务控制台查看,如果您在使用的过程中有如下异常,可以参考以下文档解决:

任务监控大盘异常处理

新版任务监控大盘常见问题

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
2月前
|
存储 JavaScript 前端开发
oss使用SDK上传文件
oss使用SDK上传文件
568 2
|
2月前
|
安全 Go 开发工具
对象存储OSS产品常见问题之go语言SDK client 和 bucket 并发安全如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
|
2月前
|
存储 监控 开发工具
对象存储OSS产品常见问题之python sdk中的append_object方法支持追加上传xls文件如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
|
2月前
|
存储 Cloud Native Serverless
云原生最佳实践系列 7:基于 OSS Object FC 实现非结构化文件实时处理
阿里云OSS对象存储方案利用函数计算FC,在不同终端请求时实时处理OSS中的原图,减少衍生图存储,降低成本。
|
2月前
|
Rust API 开发工具
Rust初学者,边学边写的OSS的sdk,欢迎批评指正 :)
`Rust`语言编写的阿里云OSS的SDK,依据官方文档并参考了其他语言的实现。
276 5
Rust初学者,边学边写的OSS的sdk,欢迎批评指正 :)
|
2月前
|
存储 移动开发 前端开发
对象存储oss使用问题之OSS SDK .net 使用下载例程报错如何解决
《对象存储OSS操作报错合集》精选了用户在使用阿里云对象存储服务(OSS)过程中出现的各种常见及疑难报错情况,包括但不限于权限问题、上传下载异常、Bucket配置错误、网络连接问题、跨域资源共享(CORS)设定错误、数据一致性问题以及API调用失败等场景。为用户降低故障排查时间,确保OSS服务的稳定运行与高效利用。
|
2月前
|
开发工具 对象存储 Android开发
对象存储oss使用问题之C++使用OSS SDK时遍历OSS上的文件时崩溃如何解决
《对象存储OSS操作报错合集》精选了用户在使用阿里云对象存储服务(OSS)过程中出现的各种常见及疑难报错情况,包括但不限于权限问题、上传下载异常、Bucket配置错误、网络连接问题、跨域资源共享(CORS)设定错误、数据一致性问题以及API调用失败等场景。为用户降低故障排查时间,确保OSS服务的稳定运行与高效利用。
|
2月前
|
对象存储
阿里云oss-cloud-sdk-springboot3兼容问题
阿里云oss-cloud-sdk-springboot3兼容问题
129 0
|
24天前
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之如何将CSV文件从阿里云OSS同步到ODPS表,并且使用列作为表分区
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
DataWorks产品使用合集之如何将CSV文件从阿里云OSS同步到ODPS表,并且使用列作为表分区
|
6天前
|
监控 Serverless 持续交付
阿里云云效产品使用问题之如何让流水线支持构建 flutter web 应用到 OSS
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。

热门文章

最新文章