Amazon Bedrock
编辑Amazon Bedrock
编辑概述
编辑Amazon Bedrock 是一项完全托管的服务,它通过统一的 API 使来自领先 AI 初创公司和 Amazon 的高性能基础模型 (FM) 可供您使用。您可以从各种基础模型中进行选择,以找到最适合您用例的模型。Amazon Bedrock 还提供广泛的功能,用于构建具有安全性、隐私和负责任 AI 的生成式 AI 应用程序。使用 Amazon Bedrock,您可以轻松地试验和评估用于您的用例的顶级基础模型,使用微调和检索增强生成 (RAG) 等技术使用您的数据私下自定义它们,并构建使用您的企业系统和数据源执行任务的代理。
Amazon Bedrock 集成使您可以轻松地将 Amazon Bedrock 模型调用日志记录和运行时指标连接到 Elastic,以无缝收集调用日志和运行时指标来监控使用情况。
Elastic Security 可以利用这些数据进行安全分析,包括关联、可视化和事件响应。通过调用日志记录,您可以收集完整的请求和响应数据,以及与您的帐户使用相关的任何元数据。
此集成将产生额外的 API 请求 AWS 费用。有关更多详细信息,请查看 API 请求。
兼容性
编辑此集成与 Amazon Bedrock ModelInvocationLog
架构 1.0 版兼容。
数据流
编辑Amazon Bedrock 集成收集模型调用日志和运行时指标。
数据流
-
invocation
:收集您的 AWS 账户中在 Amazon Bedrock 中使用的所有调用的调用日志、模型输入数据和模型输出数据。 -
runtime
:收集 Amazon Bedrock 运行时指标,例如模型调用计数、调用延迟、输入令牌计数、输出令牌计数等等。
要求
编辑您需要 Elasticsearch 来存储和搜索您的数据,并需要 Kibana 来可视化和管理它。您可以使用我们推荐的 Elastic Cloud 上的托管 Elasticsearch Service,或者在您自己的硬件上自行管理 Elastic Stack。
在使用任何 Amazon Bedrock 集成之前,您将需要
- AWS 凭证 来连接您的 AWS 账户。
- AWS 权限 来确保您用于连接的用户具有共享相关数据的权限。
有关这些要求的更多详细信息,请查看 AWS 集成文档。
- 必须安装 Elastic Agent。
- 每个主机只能安装一个 Elastic Agent。
- 需要 Elastic Agent 从 S3 存储桶流式传输数据并将数据发送到 Elastic,然后在 Elastic 中,事件将通过集成的摄取管道进行处理。
安装和管理 Elastic Agent
编辑要安装和管理 Elastic Agent,您有以下选项
安装 Fleet 管理的 Elastic Agent(推荐)
编辑您安装 Elastic Agent 并使用 Kibana 中的 Fleet 在中心位置定义、配置和管理您的代理。我们建议使用 Fleet 管理,因为它使您的代理的管理和升级变得更加容易。
在独立模式下安装 Elastic Agent(高级用户)
编辑您安装 Elastic Agent 并在安装该代理的系统上本地手动配置该代理。您负责管理和升级代理。此方法仅适用于高级用户。
在容器化环境中安装 Elastic Agent
编辑您可以在容器内运行 Elastic Agent,无论是使用 Fleet Server 还是独立运行。所有版本的 Elastic Agent 的 Docker 镜像都可从 Elastic Docker 注册表获得,我们还提供了在 Kubernetes 上运行的部署清单。
要运行 Elastic Agent,请查看这些 要求。
设置
编辑要使用 Amazon Bedrock 模型调用日志,必须启用日志模型调用日志记录并将其发送到日志存储目标,即 S3 或 CloudWatch。有关更多详细信息,请查看 Amazon Bedrock 用户指南。
- 设置 Amazon S3 或 CloudWatch Logs 目标。
- 启用日志记录。您可以通过 Amazon Bedrock 控制台 或 Amazon Bedrock API 执行此操作。
日志
编辑从 S3 存储桶收集 Amazon Bedrock 模型调用日志
编辑启用从 S3 存储桶收集日志时,您可以从 SQS 队列读取的 S3 通知事件指向的 S3 对象中检索日志,或者直接轮询 S3 存储桶中的 S3 对象列表。
首选使用 SQS 通知:轮询 S3 对象列表在性能和成本方面都很昂贵,并且最好仅在没有 SQS 通知可以附加到 S3 存储桶时使用。此输入集成还支持从 SNS 到 SQS 的 S3 通知。
通过设置 queue_url
配置值来启用 SQS 通知方法。通过设置 bucket_arn
配置值和 number_of_workers
值来启用 S3 存储桶列表轮询方法。queue_url
和 bucket_arn
不能同时设置,并且必须至少设置其中一个值。
从 CloudWatch 收集 Amazon Bedrock 模型调用日志
编辑启用从 CloudWatch 收集日志时,您可以从特定日志组中的所有日志流检索日志。filterLogEvents
AWS API 用于列出指定日志组中的日志事件。
导出的字段
字段 | 描述 | 类型 |
---|---|---|
@timestamp |
事件发生时的日期/时间。这是从事件中提取的日期/时间,通常表示事件由源生成的时间。如果事件源没有原始时间戳,则此值通常由管道第一次接收到事件时填充。所有事件的必填字段。 |
日期 |
aws.cloudwatch.message |
CloudWatch 日志消息。 |
文本 |
aws.s3.bucket.arn |
从中检索此日志的 S3 存储桶的 ARN。 |
关键词 |
aws.s3.bucket.name |
从中检索此日志的 S3 存储桶的名称。 |
关键词 |
aws.s3.object.key |
从中检索此日志的 S3 对象的名称。 |
关键词 |
aws_bedrock.invocation.artifacts |
扁平化 |
|
aws_bedrock.invocation.error |
关键词 |
|
aws_bedrock.invocation.error_code |
关键词 |
|
aws_bedrock.invocation.image_generation_config.cfg_scale |
双精度 |
|
aws_bedrock.invocation.image_generation_config.height |
长整数 |
|
aws_bedrock.invocation.image_generation_config.number_of_images |
长整数 |
|
aws_bedrock.invocation.image_generation_config.quality |
关键词 |
|
aws_bedrock.invocation.image_generation_config.seed |
长整数 |
|
aws_bedrock.invocation.image_generation_config.width |
长整数 |
|
aws_bedrock.invocation.image_variation_params.images |
关键词 |
|
aws_bedrock.invocation.image_variation_params.text |
关键词 |
|
aws_bedrock.invocation.images |
关键词 |
|
aws_bedrock.invocation.input.input_body_json |
扁平化 |
|
aws_bedrock.invocation.input.input_body_json_massive_hash |
关键词 |
|
aws_bedrock.invocation.input.input_body_json_massive_length |
长整数 |
|
aws_bedrock.invocation.input.input_body_s3_path |
关键词 |
|
aws_bedrock.invocation.input.input_content_type |
关键词 |
|
aws_bedrock.invocation.input.input_token_count |
GenAI 输入中使用的令牌数。 |
长整数 |
aws_bedrock.invocation.model_id |
关键词 |
|
aws_bedrock.invocation.output.completion_text |
格式化的 LLM 文本模型响应。仅支持有限数量的 LLM 文本模型。 |
文本 |
aws_bedrock.invocation.output.output_body_json |
扁平化 |
|
aws_bedrock.invocation.output.output_body_s3_path |
关键词 |
|
aws_bedrock.invocation.output.output_content_type |
关键词 |
|
aws_bedrock.invocation.output.output_token_count |
长整数 |
|
aws_bedrock.invocation.request_id |
关键词 |
|
aws_bedrock.invocation.result |
关键词 |
|
aws_bedrock.invocation.schema_type |
关键词 |
|
aws_bedrock.invocation.schema_version |
关键词 |
|
aws_bedrock.invocation.task_type |
关键词 |
|
cloud.image.id |
云实例的映像 ID。 |
关键词 |
data_stream.dataset |
该字段可以包含任何有意义的,表示数据来源的内容。示例包括 |
常量关键词 |
data_stream.namespace |
用户定义的命名空间。命名空间对于允许对数据进行分组很有用。许多用户已经以这种方式组织了他们的索引,并且数据流命名方案现在将此最佳实践作为默认值提供。许多用户将使用 |
常量关键词 |
data_stream.type |
数据流的总体类型。当前允许的值为 "logs" 和 "metrics"。我们希望在不久的将来也添加 "traces" 和 "synthetics"。 |
常量关键词 |
event.dataset |
事件数据集 |
常量关键词 |
event.module |
此数据来源的模块名称。如果您的监控代理支持使用模块或插件来处理给定来源的事件(例如 Apache 日志)的概念,则 |
常量关键词 |
gen_ai.analysis.action_recommended |
基于分析的建议操作。 |
关键词 |
gen_ai.analysis.findings |
来自安全工具的详细发现。 |
嵌套 |
gen_ai.analysis.function |
使用的安全或分析功能的名称。 |
关键词 |
gen_ai.analysis.tool_names |
使用的安全或分析工具的名称。 |
关键词 |
gen_ai.completion |
LLM 响应的完整文本。 |
文本 |
gen_ai.compliance.request_triggered |
列出在处理请求期间触发的合规性相关过滤器,例如数据隐私过滤器或法规合规性检查。 |
关键词 |
gen_ai.compliance.response_triggered |
列出在处理响应期间触发的合规性相关过滤器,例如数据隐私过滤器或法规合规性检查。 |
关键词 |
gen_ai.compliance.violation_code |
标识违反的特定合规性规则的代码。 |
关键词 |
gen_ai.compliance.violation_detected |
指示在交互期间是否检测到任何合规性违规。 |
布尔值 |
gen_ai.guardrail_id |
如果执行了安全防护措施,则为安全防护措施 ID。 |
关键词 |
gen_ai.owasp.description |
触发的 OWASP 风险的描述。 |
文本 |
gen_ai.owasp.id |
所解决的 OWASP 风险的标识符。 |
关键词 |
gen_ai.performance.request_size |
请求负载的大小,以字节为单位。 |
长整数 |
gen_ai.performance.response_size |
响应负载的大小,以字节为单位。 |
长整数 |
gen_ai.performance.response_time |
LLM 生成响应所花费的时间,以毫秒为单位。 |
长整数 |
gen_ai.performance.start_response_time |
LLM 发送第一个响应字节所花费的时间,以毫秒为单位。 |
长整数 |
gen_ai.policy.action |
由于违反策略而采取的操作,例如阻止、发出警报或修改内容。 |
关键词 |
gen_ai.policy.confidence |
触发操作的策略匹配的置信度级别,量化识别的内容与策略标准的匹配程度。 |
关键词 |
gen_ai.policy.match_detail.* |
对象 |
|
gen_ai.policy.match_detail.score |
浮点数 |
|
gen_ai.policy.match_detail.threshold |
浮点数 |
|
gen_ai.policy.name |
触发的特定策略的名称。 |
关键词 |
gen_ai.policy.violation |
指定是否违反了安全策略。 |
布尔值 |
gen_ai.prompt |
用户向 gen_ai 发出的完整请求文本。 |
文本 |
gen_ai.request.id |
LLM 请求的唯一标识符。 |
关键词 |
gen_ai.request.max_tokens |
LLM 为请求生成的最大 token 数。 |
整数 |
gen_ai.request.model.description |
LLM 模型的描述。 |
关键词 |
gen_ai.request.model.id |
LLM 模型的唯一标识符。 |
关键词 |
gen_ai.request.model.instructions |
LLM 模型的自定义指令。 |
文本 |
gen_ai.request.model.role |
LLM 模型在交互中的角色。 |
关键词 |
gen_ai.request.model.type |
LLM 模型的类型。 |
关键词 |
gen_ai.request.model.version |
用于生成响应的 LLM 模型的版本。 |
关键词 |
gen_ai.request.temperature |
LLM 请求的温度设置。 |
浮点数 |
gen_ai.request.timestamp |
发出请求的时间戳。 |
日期 |
gen_ai.request.top_k |
LLM 请求的 top_k 采样设置。 |
浮点数 |
gen_ai.request.top_p |
LLM 请求的 top_p 采样设置。 |
浮点数 |
gen_ai.response.error_code |
LLM 响应中返回的错误代码。 |
关键词 |
gen_ai.response.finish_reasons |
LLM 响应停止的原因。 |
关键词 |
gen_ai.response.id |
LLM 响应的唯一标识符。 |
关键词 |
gen_ai.response.model |
生成响应的 LLM 的名称。 |
关键词 |
gen_ai.response.timestamp |
接收到响应的时间戳。 |
日期 |
gen_ai.security.hallucination_consistency |
多个响应之间的一致性检查。 |
浮点数 |
gen_ai.security.jailbreak_score |
衡量与已知越狱尝试的相似度。 |
浮点数 |
gen_ai.security.prompt_injection_score |
衡量与已知提示注入攻击的相似度。 |
浮点数 |
gen_ai.security.refusal_score |
衡量与已知 LLM 拒绝响应的相似度。 |
浮点数 |
gen_ai.security.regex_pattern_count |
计算与用户定义的正则表达式模式匹配的字符串的出现次数。 |
整数 |
gen_ai.sentiment.content_categories |
被识别为敏感或需要审核的内容类别。 |
关键词 |
gen_ai.sentiment.content_inappropriate |
内容是否被标记为不当或敏感。 |
布尔值 |
gen_ai.sentiment.score |
情感分析得分。 |
浮点数 |
gen_ai.sentiment.toxicity_score |
毒性分析得分。 |
浮点数 |
gen_ai.system |
LLM 基础模型供应商的名称。 |
关键词 |
gen_ai.text.complexity_score |
评估文本的复杂性。 |
浮点数 |
gen_ai.text.readability_score |
衡量文本的可读性级别。 |
浮点数 |
gen_ai.text.similarity_score |
衡量提示和响应之间的相似度。 |
浮点数 |
gen_ai.threat.action |
用于缓解检测到的安全威胁的建议操作。 |
关键词 |
gen_ai.threat.category |
检测到的安全威胁的类别。 |
关键词 |
gen_ai.threat.description |
检测到的安全威胁的描述。 |
文本 |
gen_ai.threat.detected |
是否检测到安全威胁。 |
布尔值 |
gen_ai.threat.risk_score |
指示与响应相关的潜在风险的数值得分。 |
浮点数 |
gen_ai.threat.signature |
检测到的安全威胁的签名。 |
关键词 |
gen_ai.threat.source |
检测到的安全威胁的来源。 |
关键词 |
gen_ai.threat.type |
LLM 交互中检测到的威胁类型。 |
关键词 |
gen_ai.threat.yara_matches |
存储来自 YARA 扫描的结果,包括规则匹配和类别。 |
嵌套 |
gen_ai.usage.completion_tokens |
LLM 响应中的 token 数。 |
整数 |
gen_ai.usage.prompt_tokens |
用户请求中的 token 数。 |
整数 |
gen_ai.user.id |
用户的唯一标识符。 |
关键词 |
gen_ai.user.rn |
用户的唯一资源名称。 |
关键词 |
host.containerized |
如果主机是容器。 |
布尔值 |
host.os.build |
操作系统构建信息。 |
关键词 |
host.os.codename |
操作系统代号(如果有)。 |
关键词 |
input.type |
Filebeat 输入的类型。 |
关键词 |
log.offset |
日志偏移量 |
长整数 |
指标
编辑运行时指标
编辑Amazon Bedrock 运行时指标包括 Invocations
、InvocationLatency
、InvocationClientErrors
、InvocationServerErrors
、OutputTokenCount
、OutputImageCount
、InvocationThrottles
。 这些指标可用于各种用例,包括
- 比较模型延迟
- 测量输入和输出 token 数
- 检测系统限制的调用次数
示例
一个 runtime
的示例事件如下所示
{ "@timestamp": "2024-07-15T07:35:00.000Z", "agent": { "ephemeral_id": "63673811-d18c-4209-8818-df8b346bcb28", "id": "47a2173f-3f59-4a7c-a022-dee86802c2c1", "name": "service-integration-dev-idc-1", "type": "metricbeat", "version": "8.13.4" }, "aws": { "cloudwatch": { "namespace": "AWS/Bedrock" } }, "aws_bedrock": { "runtime": { "input_token_count": 848, "invocation_latency": 2757, "invocations": 5, "output_token_count": 1775 } }, "cloud": { "account": { "id": "00000000000000", "name": "MonitoringAccount" }, "provider": "aws", "region": "ap-south-1" }, "data_stream": { "dataset": "aws_bedrock.runtime", "namespace": "ep", "type": "metrics" }, "ecs": { "version": "8.0.0" }, "elastic_agent": { "id": "47a2173f-3f59-4a7c-a022-dee86802c2c1", "snapshot": false, "version": "8.13.4" }, "event": { "agent_id_status": "verified", "dataset": "aws_bedrock.runtime", "duration": 174434808, "ingested": "2024-07-15T07:44:02Z", "module": "aws" }, "host": { "architecture": "x86_64", "containerized": false, "hostname": "service-integration-dev-idc-1", "id": "1bfc9b2d8959f75a520a3cb94cf035c8", "ip": [ "10.160.0.4", "172.1.0.1", "172.17.0.1", "172.19.0.1", "172.20.0.1", "172.22.0.1", "172.23.0.1", "172.26.0.1", "172.27.0.1", "172.28.0.1", "172.29.0.1", "172.30.0.1", "172.31.0.1", "192.168.0.1", "192.168.32.1", "192.168.49.1", "192.168.80.1", "192.168.224.1", "fe80::42:9cff:fe5b:79b4", "fe80::42:a5ff:fe15:d63c", "fe80::42:beff:fe39:f457", "fe80::42a:f7ff:fe6c:421d", "fe80::1818:53ff:fea8:3f38", "fe80::4001:aff:fea0:4", "fe80::8cfa:3aff:fedb:656a", "fe80::c890:29ff:fe99:ac1b", "fe80::fcfc:c2ff:feca:1e28" ], "mac": [ "02-42-0D-A6-43-C0", "02-42-23-32-CF-25", "02-42-27-90-E6-54", "02-42-34-10-CA-62", "02-42-4F-1D-94-1B", "02-42-50-2E-CB-58", "02-42-5D-42-F3-1D", "02-42-66-9B-25-B2", "02-42-99-B7-1B-26", "02-42-9C-5B-79-B4", "02-42-A5-15-D6-3C", "02-42-A6-68-F8-E9", "02-42-BE-39-F4-57", "02-42-CE-31-B7-A3", "02-42-E8-F3-CF-7A", "02-42-F1-35-B0-41", "02-42-F4-2F-0F-22", "06-2A-F7-6C-42-1D", "1A-18-53-A8-3F-38", "42-01-0A-A0-00-04", "8E-FA-3A-DB-65-6A", "CA-90-29-99-AC-1B", "FE-FC-C2-CA-1E-28" ], "name": "service-integration-dev-idc-1", "os": { "codename": "bionic", "family": "debian", "kernel": "5.4.0-1106-gcp", "name": "Ubuntu", "platform": "ubuntu", "type": "linux", "version": "18.04.6 LTS (Bionic Beaver)" } }, "metricset": { "name": "cloudwatch", "period": 300000 }, "service": { "type": "aws" } }
导出的字段
字段 | 描述 | 类型 | 单位 | 指标类型 |
---|---|---|---|---|
@timestamp |
事件时间戳。 |
日期 |
||
agent.id |
此代理的唯一标识符(如果存在)。示例:对于 Beats,这将是 beat.id。 |
关键词 |
||
aws.cloudwatch.namespace |
查询 cloudwatch API 时指定的命名空间。 |
关键词 |
||
aws.metrics_names_fingerprint |
表示指标名称列表指纹的自动生成 ID。 |
关键词 |
||
aws_bedrock.runtime.bucketed_step_size |
关键词 |
|||
aws_bedrock.runtime.image_size |
关键词 |
|||
aws_bedrock.runtime.input_token_count |
文本输入 token 的数量。 |
长整数 |
测量值 |
|
aws_bedrock.runtime.invocation_client_errors |
导致客户端错误的调用次数。 |
长整数 |
测量值 |
|
aws_bedrock.runtime.invocation_latency |
调用的平均延迟。 |
长整数 |
毫秒 |
测量值 |
aws_bedrock.runtime.invocation_server_errors |
导致 AWS 服务器端错误的调用次数。 |
长整数 |
测量值 |
|
aws_bedrock.runtime.invocation_throttles |
系统限制的调用次数。 |
长整数 |
测量值 |
|
aws_bedrock.runtime.invocations |
对 |
长整数 |
测量值 |
|
aws_bedrock.runtime.legacymodel_invocations |
对旧模型的请求数。 |
长整数 |
测量值 |
|
aws_bedrock.runtime.model_id |
关键词 |
|||
aws_bedrock.runtime.output_image_count |
输出图像的数量。 |
长整数 |
测量值 |
|
aws_bedrock.runtime.output_token_count |
文本输出 token 的数量。 |
长整数 |
测量值 |
|
aws_bedrock.runtime.quality |
关键词 |
|||
cloud.account.id |
用于在多租户环境中识别不同实体的云账户或组织 ID。示例:AWS 账户 ID、Google Cloud ORG ID 或其他唯一标识符。 |
关键词 |
||
cloud.region |
此主机、资源或服务所在的区域。 |
关键词 |
||
data_stream.dataset |
数据流数据集。 |
常量关键词 |
||
data_stream.namespace |
数据流命名空间。 |
常量关键词 |
||
data_stream.type |
数据流类型。 |
常量关键词 |
||
event.module |
此数据来源的模块名称。如果您的监控代理支持使用模块或插件来处理给定来源的事件(例如 Apache 日志)的概念,则 |
常量关键词 |
变更日志
编辑变更日志
版本 | 详细信息 | Kibana 版本 |
---|---|---|
0.16.0 |
增强 (查看拉取请求) |
— |
0.15.0 |
增强 (查看拉取请求) |
— |
0.14.0 |
增强 (查看拉取请求) |
— |
0.13.1 |
错误修复 (查看拉取请求) |
— |
0.13.0 |
增强 (查看拉取请求) |
— |
0.12.0 |
增强 (查看拉取请求) |
— |
0.11.3 |
错误修复 (查看拉取请求) |
— |
0.11.2 |
增强 (查看拉取请求) |
— |
0.11.1 |
错误修复 (查看拉取请求) |
— |
0.11.0 |
增强 (查看拉取请求) |
— |
0.10.1 |
错误修复 (查看拉取请求) |
— |
0.10.0 |
增强 (查看拉取请求) |
— |
0.9.1 |
错误修复 (查看拉取请求) |
— |
0.9.0 |
增强 (查看拉取请求) |
— |
0.8.0 |
错误修复 (查看拉取请求) |
— |
0.7.0 |
增强 (查看拉取请求) |
— |
0.6.0 |
增强 (查看拉取请求) |
— |
0.5.0 |
增强 (查看拉取请求) |
— |
0.4.0 |
增强 (查看拉取请求) |
— |
0.3.0 |
增强 (查看拉取请求) |
— |
0.2.0 |
增强 (查看拉取请求) |
— |
0.1.3 |
错误修复 (查看拉取请求) |
— |
0.1.2 |
错误修复 (查看拉取请求) |
— |
0.1.1 |
错误修复 (查看拉取请求) |
— |
0.1.0 |
增强 (查看拉取请求) |
— |