Usando um pipeline de OpenSearch ingestão com os serviços da Atlassian - OpenSearch Serviço Amazon

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usando um pipeline de OpenSearch ingestão com os serviços da Atlassian

Você pode usar os plug-ins de origem do Atlassian Jira e do Confluence para ingerir dados dos serviços da Atlassian em seu pipeline de ingestão. OpenSearch Essas integrações permitem que você crie uma base de conhecimento pesquisável unificada sincronizando projetos completos do Jira e espaços do Confluence, mantendo a relevância em tempo real por meio do monitoramento contínuo e da sincronização automática das atualizações.

Integrating with Jira

Transforme sua experiência no Jira com poderosos recursos de pesquisa contextual integrando seu conteúdo do Jira em. OpenSearch O plug-in de origem do Data Prepper Atlassian Jira permite que você crie uma base de conhecimento pesquisável unificada sincronizando projetos completos do Jira, mantendo a relevância em tempo real por meio do monitoramento contínuo e da sincronização automática de atualizações. Essa integração permite a sincronização de dados com opções flexíveis de filtragem para projetos, tipos de problemas e status específicos, garantindo que somente as informações necessárias sejam importadas.

Para garantir conectividade segura e confiável, o plug-in oferece suporte a vários métodos de autenticação, incluindo autenticação e OAuth2 autenticação básicas de chave de API, com a segurança adicional de gerenciar credenciais usando um segredo armazenado AWS Secrets Manager. Ele também possui renovação automática de tokens para acesso ininterrupto, garantindo operação contínua. Baseada na API da Atlassian versão 2, essa integração permite que as equipes desbloqueiem informações valiosas de seus dados do Jira por meio dos recursos avançados OpenSearch de pesquisa.

Integrating with Confluence

Melhore os recursos de colaboração e gerenciamento de conhecimento da sua equipe integrando o conteúdo do Atlassian Confluence por OpenSearch meio do plug-in de origem Confluence do Data Prepper. Essa integração permite criar um repositório centralizado e pesquisável de conhecimento coletivo, melhorando a descoberta de informações e a produtividade da equipe. Ao sincronizar o conteúdo do Confluence e monitorar continuamente as atualizações, o plug-in garante que seu OpenSearch índice permaneça up-to-date abrangente.

A integração oferece opções flexíveis de filtragem, permitindo que você importe seletivamente conteúdo de espaços ou tipos de página específicos, adaptando o conteúdo sincronizado às necessidades da sua organização. O plug-in oferece suporte à chave básica de API e aos métodos de OAuth2 autenticação, com a opção de gerenciar credenciais com segurança por meio de. AWS Secrets Manager O recurso de renovação automática de tokens do plug-in garante acesso ininterrupto e operação perfeita. Baseada na API Confluence da Atlassian, essa integração permite que as equipes aproveitem os recursos de pesquisa avançada OpenSearch do Confluence em todo o conteúdo do Confluence, aprimorando a acessibilidade e a utilização das informações na organização.

Pré-requisitos

Antes de criar seu pipeline OpenSearch de ingestão, conclua as seguintes etapas:

  1. Prepare as credenciais para seu site Jira escolhendo uma das seguintes opções. OpenSearch A ingestão requer apenas ReadOnly autorização para o conteúdo.

    1. Opção 1: chave de API — Faça login na sua conta Atlassian e use as informações no tópico a seguir para gerar sua chave de API:

    2. Opção 2: OAuth2 — Faça login na sua conta Atlassian e use as informações em. Conectando um pipeline de OpenSearch ingestão da Amazon ao Atlassian Jira ou ao Confluence usando 2.0 OAuth

  2. Crie um segredo AWS Secrets Manager para armazenar as credenciais criadas na etapa anterior. Faça as seguintes escolhas ao seguir o procedimento:

    • Em Tipo de segredo, escolha Outro tipo de segredo.

    • Para pares de chave/valor, crie os seguintes pares, dependendo do tipo de autorização selecionado:

    API key
    { "username": user-name-usualy-email-id, "password": api-key }
    OAuth 2.0
    { "clientId": client-id "clientSecret": client-secret "accessKey": access-key "refreshKey": refresh-key }

    Depois de criar o segredo, copie o Amazon Resource Name (ARN) do segredo. Você o incluirá na política de permissões de funções do pipeline.

Configurar uma função de pipeline

A função passada no pipeline deve ter a seguinte política anexada para leitura e gravação no segredo criado na seção de pré-requisitos.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Sid": "SecretReadWrite", "Effect": "Allow", "Action": [ "secretsmanager:GetResourcePolicy", "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "secretsmanager:PutSecretValue", "secretsmanager:ListSecretVersionIds" ], "Resource": "arn:aws:secretsmanager:us-east-1:111122223333:secret:secret-name-random-6-characters" } ] }

A função também deve ter uma política anexada para acessar e gravar no coletor escolhido. Por exemplo, se você escolher OpenSearch como coletor, a política será semelhante à seguinte:

JSON
{ "Version": "2012-10-17", "Statement": [ { "Sid": "OpenSearchWritePolicy", "Effect": "Allow", "Action": "aoss:*", "Resource": "arn:aws:aoss:us-east-1:111122223333:collection/collection-id" } ] }

Configuração do pipeline do conector Jira

Você pode usar um blueprint pré-configurado do Atlassian Jira para criar esse pipeline. Para obter mais informações, consulte Trabalhando com plantas.

Substitua os placeholder values por suas próprias informações.

version: "2" extension: aws: secrets: jira-account-credentials: secret_id: "secret-arn" region: "secret-region" sts_role_arn: "arn:aws:iam::123456789012:role/Example-Role" atlassian-jira-pipeline: source: jira: # We only support one host url for now hosts: ["jira-host-url"] acknowledgments: true authentication: # Provide one of the authentication method to use. Supported methods are 'basic' and 'oauth2'. # For basic authentication, password is the API key that you generate using your jira account basic: username: ${{aws_secrets:jira-account-credentials:username}} password: ${{aws_secrets:jira-account-credentials:password}} # For OAuth2 based authentication, we require the following 4 key values stored in the secret # Follow atlassian instructions at the below link to generate these keys. # https://developer.atlassian.com/cloud/confluence/oauth-2-3lo-apps/ # If you are using OAuth2 authentication, we also require, write permission to your AWS secret to # be able to write the renewed tokens back into the secret. # oauth2: # client_id: ${{aws_secrets:jira-account-credentials:clientId}} # client_secret: ${{aws_secrets:jira-account-credentials:clientSecret}} # access_token: ${{aws_secrets:jira-account-credentials:accessToken}} # refresh_token: ${{aws_secrets:jira-account-credentials:refreshToken}} filter: project: key: include: # This is not project name. # It is an alphanumeric project key that you can find under project details in Jira. - "project-key" - "project-key" # exclude: # - "project-key" # - "project-key" issue_type: include: - "issue-type" # - "Story" # - "Bug" # - "Task" # exclude: # - "Epic" status: include: - "ticket-status" # - "To Do" # - "In Progress" # - "Done" # exclude: # - "Backlog" sink: - opensearch: # Provide an Amazon OpenSearch Service domain endpoint hosts: [ "https://search-mydomain-1a2a3a4a5a6a7a8a9a0a9a8a7a.us-east-1.es.amazonaws.com" ] index: "index_${getMetadata(\"project\")}" # Ensure adding unique document id which is the unique ticket id in this case document_id: '${/id}' aws: # Provide a Role ARN with access to the domain. This role should have a trust relationship with osis-pipelines.amazonaws.com sts_role_arn: "arn:aws:iam::123456789012:role/Example-Role" # Provide the region of the domain. region: "us-east-1" # Enable the 'serverless' flag if the sink is an Amazon OpenSearch Serverless collection serverless: false # serverless_options: # Specify a name here to create or update network policy for the serverless collection # network_policy_name: "network-policy-name" # Enable the 'distribution_version' setting if the Amazon OpenSearch Service domain is of version Elasticsearch 6.x # distribution_version: "es6" # Enable and switch the 'enable_request_compression' flag if the default compression setting is changed in the domain. # See Compactação de solicitações HTTP no Amazon OpenSearch # enable_request_compression: true/false # Optional: Enable the S3 DLQ to capture any failed requests in an S3 bucket. Delete this entire block if you don't want a DLQ. dlq: s3: # Provide an S3 bucket bucket: "your-dlq-bucket-name" # Provide a key path prefix for the failed requests # key_path_prefix: "kinesis-pipeline/logs/dlq" # Provide the region of the bucket. region: "us-east-1" # Provide a Role ARN with access to the bucket. This role should have a trust relationship with osis-pipelines.amazonaws.com sts_role_arn: "arn:aws:iam::123456789012:role/Example-Role"

Chave dos atributos na fonte do Jira:

  1. hosts: sua nuvem do Jira ou URL local. Geralmente, parece quehttps://your-domain-name.atlassian.net/.

  2. agradecimentos: Para garantir a entrega dos dados até a pia.

  3. autenticação: descreve como você deseja que o pipeline acesse sua instância do Jira. Escolha Basic ou OAuth2 e especifique os atributos de chave correspondentes que fazem referência às chaves em seu AWS segredo.

  4. filtro: esta seção ajuda você a selecionar qual parte dos seus dados do Jira deve ser extraída e sincronizada.

    1. projeto: liste as chaves do projeto que você deseja sincronizar na include seção. Caso contrário, liste os projetos que você deseja excluir na exclude seção. Forneça somente uma das opções de inclusão ou exclusão a qualquer momento.

    2. issue_type: tipos de problemas específicos que você deseja sincronizar. Siga o exclude padrão include ou similar que atenda às suas necessidades. Observe que os anexos aparecerão como links âncora para o anexo original, mas o conteúdo do anexo não será extraído.

    3. status: filtro de status específico que você deseja aplicar para a consulta de extração de dados. Se você especificarinclude, somente tickets com esses status serão sincronizados. Se você especificarexclude, todos os tíquetes, exceto aqueles com os status excluídos listados, serão sincronizados.

Configuração do pipeline do conector Confluence

Você pode usar um blueprint pré-configurado do Atlassian Confluence para criar esse pipeline. Para obter mais informações, consulte Trabalhando com plantas.

version: "2" extension: aws: secrets: confluence-account-credentials: secret_id: "secret-arn" region: "secret-region" sts_role_arn: "arn:aws:iam::123456789012:role/Example-Role" atlassian-confluence-pipeline: source: confluence: # We currently support only one host URL. hosts: ["confluence-host-url"] acknowledgments: true authentication: # Provide one of the authentication method to use. Supported methods are 'basic' and 'oauth2'. # For basic authentication, password is the API key that you generate using your Confluence account basic: username: ${{aws_secrets:confluence-account-credentials:confluenceId}} password: ${{aws_secrets:confluence-account-credentials:confluenceCredential}} # For OAuth2 based authentication, we require the following 4 key values stored in the secret # Follow atlassian instructions at the following link to generate these keys: # https://developer.atlassian.com/cloud/confluence/oauth-2-3lo-apps/ # If you are using OAuth2 authentication, we also require write permission to your AWS secret to # be able to write the renewed tokens back into the secret. # oauth2: # client_id: ${{aws_secrets:confluence-account-credentials:clientId}} # client_secret: ${{aws_secrets:confluence-account-credentials:clientSecret}} # access_token: ${{aws_secrets:confluence-account-credentials:accessToken}} # refresh_token: ${{aws_secrets:confluence-account-credentials:refreshToken}} filter: space: key: include: # This is not space name. # It is a space key that you can find under space details in Confluence. - "space key" - "space key" # exclude: # - "space key" # - "space key" page_type: include: - "content type" # - "page" # - "blogpost" # - "comment" # exclude: # - "attachment" sink: - opensearch: # Provide an Amazon OpenSearch Service domain endpoint hosts: [ "https://search-mydomain-1a2a3a4a5a6a7a8a9a0a9a8a7a.us-east-1.es.amazonaws.com" ] index: "index_${getMetadata(\"space\")}" # Ensure adding unique document id which is the unique ticket ID in this case. document_id: '${/id}' aws: # Provide the Amazon Resource Name (ARN) for a role with access to the domain. This role should have a trust relationship with osis-pipelines.amazonaws.com. sts_role_arn: "arn:aws:iam::123456789012:role/Example-Role" # Provide the Region of the domain. region: "us-east-1" # Enable the 'serverless' flag if the sink is an Amazon OpenSearch Serverless collection serverless: false # serverless_options: # Specify a name here to create or update network policy for the serverless collection. # network_policy_name: "network-policy-name" # Enable the 'distribution_version' setting if the Amazon OpenSearch Service domain is of version Elasticsearch 6.x # distribution_version: "es6" # Enable and switch the 'enable_request_compression' flag if the default compression setting is changed in the domain. # For more information, see Compactação de solicitações HTTP no Amazon OpenSearch . # enable_request_compression: true/false # Optional: Enable the S3 DLQ to capture any failed requests in an S3 bucket. Delete this entire block if you don't want a DLQ. dlq: s3: # Provide an S3 bucket bucket: "your-dlq-bucket-name" # Provide a key path prefix for the failed requests # key_path_prefix: "kinesis-pipeline/logs/dlq" # Provide the Rregion of the bucket. region: "us-east-1" # Provide the Amazon Resource Name (ARN) for a role with access to the bucket. This role should have a trust relationship with osis-pipelines.amazonaws.com sts_role_arn: "arn:aws:iam::123456789012:role/Example-Role"

Principais atributos na fonte do Confluence:

  1. hosts: sua nuvem do Confluence ou URL local. Geralmente, parece que https://your-domain-name.atlassian.net/

  2. agradecimentos: Para garantir a entrega dos dados até a pia.

  3. autenticação: descreve como você deseja que o pipeline acesse sua instância do Confluence. Escolha Basic ou OAuth2 e especifique os atributos de chave correspondentes que fazem referência às chaves em seu AWS segredo.

  4. filtro: esta seção ajuda você a selecionar qual parte dos dados do Confluence deve ser extraída e sincronizada.

    1. espaço: liste as teclas de espaço que você deseja sincronizar na include seção. Caso contrário, liste os espaços que você deseja excluir na exclude seção. Forneça somente uma das opções de inclusão ou exclusão a qualquer momento.

    2. page_type: tipos de página específicos (como página, postagem de blog ou anexos) que você deseja sincronizar. Siga o exclude padrão include ou similar que atenda às suas necessidades. Observe que os anexos aparecerão como links âncora para o anexo original, mas o conteúdo do anexo não será extraído.

Consistência de dados

Com base nos filtros especificados no YAML do pipeline, os projetos (ou espaços) selecionados serão extraídos uma vez e totalmente sincronizados com o coletor de destino. Em seguida, o monitoramento contínuo de alterações capturará as alterações à medida que elas ocorrerem e atualizará os dados no coletor. Uma exceção é que o monitoramento de mudanças sincroniza somente create update ações, não delete ações.

Limitações

  • As ações de exclusão do usuário não serão sincronizadas. Os dados, uma vez gravados no coletor, permanecerão no coletor. As atualizações substituirão o conteúdo existente por novas alterações se o mapeamento de ID for especificado nas configurações do coletor.

  • As instâncias locais que usam versões mais antigas do software Atlassian que não oferecem suporte ao seguinte não APIs são compatíveis com essa fonte:

    • API de pesquisa do Jira versão 3

      • rest/api/3/search

      • rest/api/3/issue

    • Confluence

      • wiki/rest/api/content/search

      • wiki/rest/api/content

      • wiki/rest/api/settings/systemInfo

Métricas CloudWatch para conectores Atlassian

Tipo: métricas do conector Jira

Origem Métrica Tipo de métrica
acknowledgementSetSuccesses.contar Contador Se as confirmações estiverem ativadas, essa métrica fornecerá o número de tickets sincronizados com sucesso.
acknowledgementSetFailures.contar Contador Se as confirmações estiverem ativadas, essa métrica fornecerá o número de tickets que falharam na sincronização.
Tempo de rastreamento.avg Timer O tempo necessário para analisar todas as novas mudanças.
ticketFetchLatency.avg Timer A média de latência da API de busca de tickets.
ticketFetchLatency.máximo Timer A latência máxima da API de busca do ticket.
Ingressos solicitados. Contagem Contador Número de solicitações de busca de tíquetes feitas.
ticketRequestedFailed.contar Contador Falha no número de solicitações de busca de tíquetes.
ticketRequestedSuccess.contar Contador O número de solicitações de busca de tíquetes foi bem-sucedido.
searchCallLatency.avg Timer Média da latência de chamadas da API de pesquisa.
searchCallLatency.máximo Timer Latência máxima de chamada da API de pesquisa.
searchResultsFound.contar Contador Número de itens encontrados em uma determinada chamada de pesquisa.
searchRequestFailed.contar Contador Contagem de falhas nas chamadas da API de pesquisa.
AuthFailures.count Contador Contagem de falhas de autenticação.

Tipo: métricas do conector Confluence

Origem Métrica Tipo de métrica
acknowledgementSetSuccesses.contar Contador Se as confirmações estiverem ativadas, essa métrica fornecerá o número de páginas sincronizadas com sucesso.
acknowledgementSetFailures.contar Contador Se as confirmações estiverem ativadas, essa métrica fornecerá o número de páginas que falharam na sincronização.
Tempo de rastreamento.avg Timer O tempo necessário para analisar todas as novas mudanças.
pageFetchLatency.avg Timer Latência da API de busca de conteúdo (média).
pageFetchLatency.máximo Timer Latência da API de busca de conteúdo (máxima).
Número de páginas solicitadas Contador Número de invocações da API de busca de conteúdo.
pageRequestFailed.contar Contador Número de solicitações falhadas da API de busca de conteúdo.
pageRequestedSuccess.contar Contador Número de solicitações bem-sucedidas da API de busca de conteúdo.
searchCallLatency.avg Timer Média da latência de chamadas da API de pesquisa.
searchCallLatency.máximo Timer Latência máxima de chamadas da API de pesquisa
searchResultsFound.contar Contador Número de itens encontrados em uma determinada chamada de pesquisa.
searchRequestsFailed.contar Contador Contagem de falhas nas chamadas da API de pesquisa.
AuthFailures.count Contador Contagem de falhas de autenticação.