Amazon Bedrock

编辑

版本

0.16.0 [beta] 此功能为 beta 版,可能会发生更改。其设计和代码不如正式 GA 功能成熟,并按原样提供,不提供任何保证。Beta 版功能不受正式 GA 功能的支持 SLA 约束。 (查看全部)

兼容的 Kibana 版本

8.16.0 或更高版本

支持的无服务器项目类型
这是什么?

安全性
可观测性

订阅级别
这是什么?

基本

支持级别
这是什么?

Elastic

概述

编辑

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 用户指南

  1. 设置 Amazon S3CloudWatch Logs 目标。
  2. 启用日志记录。您可以通过 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_urlbucket_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

该字段可以包含任何有意义的,表示数据来源的内容。示例包括 nginx.accessprometheusendpoint 等。对于其他方面符合条件,但未设置数据集的数据流,我们使用值 "generic" 作为数据集值。event.dataset 应具有与 data_stream.dataset 相同的值。除了上面提到的 Elasticsearch 数据流命名标准之外,dataset 值还有其他限制:* 不能包含 - * 不得超过 100 个字符

常量关键词

data_stream.namespace

用户定义的命名空间。命名空间对于允许对数据进行分组很有用。许多用户已经以这种方式组织了他们的索引,并且数据流命名方案现在将此最佳实践作为默认值提供。许多用户将使用 default 填充此字段。如果未使用值,则会回退到 default。除了上面提到的 Elasticsearch 索引命名标准之外,namespace 值还有其他限制:* 不能包含 - * 不得超过 100 个字符

常量关键词

data_stream.type

数据流的总体类型。当前允许的值为 "logs" 和 "metrics"。我们希望在不久的将来也添加 "traces" 和 "synthetics"。

常量关键词

event.dataset

事件数据集

常量关键词

event.module

此数据来源的模块名称。如果您的监控代理支持使用模块或插件来处理给定来源的事件(例如 Apache 日志)的概念,则 event.module 应包含此模块的名称。

常量关键词

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 运行时指标包括 InvocationsInvocationLatencyInvocationClientErrorsInvocationServerErrorsOutputTokenCountOutputImageCountInvocationThrottles。 这些指标可用于各种用例,包括

  • 比较模型延迟
  • 测量输入和输出 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

ConverseConverseStreamInvokeModelInvokeModelWithResponseStream API 操作的请求数。

长整数

测量值

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 日志)的概念,则 event.module 应包含此模块的名称。

常量关键词

变更日志

编辑
变更日志
版本 详细信息 Kibana 版本

0.16.0

增强 (查看拉取请求)
event.kind 设置为 "pipeline_error" 的文档添加 "preserve_original_event" 标签。

0.15.0

增强 (查看拉取请求)
保留 contextualGroundingPolicy 检查的详细信息。

0.14.0

增强 (查看拉取请求)
添加在使用日志组前缀来派生匹配日志组时检查链接帐户的选项

0.13.1

错误修复 (查看拉取请求)
重构 get_guardrail_details 并修复缺少的数据。

0.13.0

增强 (查看拉取请求)
output.outputBodyJson.trace.guardrail.inputAssessment 添加 gen_ai.guardrail_id 的映射。

0.12.0

增强 (查看拉取请求)
支持配置拥有帐户

0.11.3

错误修复 (查看拉取请求)
忽略 …​trace.guardrail 下的非策略数据。

0.11.2

增强 (查看拉取请求)
添加对 AWS API 请求和定价信息的引用。

0.11.1

错误修复 (查看拉取请求)
修复仪表板中的空格问题。修复文档问题。

0.11.0

增强 (查看拉取请求)
提高文档的清晰度。

0.10.1

错误修复 (查看拉取请求)
在引用摄取管道中的变量时使用三括号 Mustache 模板。

0.10.0

增强 (查看拉取请求)
添加 aws.metrics_names_fingerprint。

0.9.1

错误修复 (查看拉取请求)
在策略模板中将集成名称更新为 Amazon Bedrock。

0.9.0

增强 (查看拉取请求)
允许 @custom 管道访问 event.original 而无需设置 preserve_original_event。

0.8.0

错误修复 (查看拉取请求)
将集成名称更新为 Amazon Bedrock。

0.7.0

增强 (查看拉取请求)
支持较新的防护栏数据结构。

0.6.0

增强 (查看拉取请求)
添加新字段 aws_bedrock.invocation.output.completion_text,其中包含 LLM 文本模型响应。 添加 LLM prompt 和 response 的可视化效果。

0.5.0

增强 (查看拉取请求)
添加处理器以设置 aws_bedrock 运行时数据流的 cloud.account.name 字段。

0.4.0

增强 (查看拉取请求)
将 dot_expander 处理器添加到指标摄取管道中。

0.3.0

增强 (查看拉取请求)
添加运行时数据集以收集运行时指标。

0.2.0

增强 (查看拉取请求)
更新 kibana 约束为 ^8.13.0。修改了字段定义,以删除 ecs@mappings 组件模板中多余的 ECS 字段。

0.1.3

错误修复 (查看拉取请求)
修复名称规范化例程。

0.1.2

错误修复 (查看拉取请求)
添加文档图像。

0.1.1

错误修复 (查看拉取请求)
修复文档 markdown。

0.1.0

增强 (查看拉取请求)
初始构建。