Automatizando a Gestão de Chamados com API da Milvus, Python e Power BI

A gestão eficiente de chamados de suporte de infraestrutura é crucial para garantir a estabilidade e a disponibilidade dos serviços. Neste artigo, quero demonstrar como automatizar esse processo usando Python e interagindo com a API da Milvus. A automação não só poupa tempo, mas também permite uma análise mais precisa e eficaz dos dados de suporte.

O script em Python utiliza a biblioteca requests para fazer uma solicitação POST a uma API, especificamente a “https://apiintegracao.milvus.com.br/api/chamado/listagem”. O objetivo é obter informações sobre chamados com determinado status e dentro de um intervalo de datas.

O payload da solicitação contém informações de filtro, como o status desejado e as datas inicial e final. O cabeçalho da solicitação inclui informações de autorização. O script manipula a resposta JSON da API, verifica se a solicitação foi bem-sucedida e, se for o caso, converte os dados da resposta em um DataFrame usando a biblioteca pandas. Em seguida, seleciona e organiza as colunas desejadas, formatando as colunas de data, se necessário, e exibe o DataFrame em formato tabular.

Além disso, o script inclui verificações para garantir que as colunas necessárias estejam presentes no DataFrame retornado pela API, com uma mensagem de erro caso contrário.

Pré-requisitos:

  • Python instalado (até o momento, o Power BI oferece suporte à versão 3.6 do Python )
  • Bibliotecas necessárias: requests, pandas.
  • Conta na API da Milvus com token de autenticação.
  • Power BI Desktop instalado.

Veja aqui Como conectar script em Python no Power BI.

Nesse exemplo vamos utilizar a opção de listagem de chamados. Atualmente a API do Milvus conta com algumas limitações:

– 1000 (um mil) resultados para cada requisição realizada quando falamos de listagens com paginação.
– Cada requisição deve ser feita no período superior a 1 minuto, se realizado antes irá retornar um erro.
API de integração Milvus

Nesse exemplo serão exportados os últimos 1000 registros, para chamados fechados com as seguintes colunas:

“codigo”
“cliente”
“contato”
“categoria_primaria”
“categoria_secundaria”
“tecnico”
“total_horas”
“data_criacao”
“data_solucao”
“servico_realizado

Script listagem de chamados:

import requests
import pandas as pd
import json

# API endpoint URL
url = "https://apiintegracao.milvus.com.br/api/chamado/listagem"

# Add Query Param to the URL
url += "?total_registros=1000"

# Define payload for the API request
payload = json.dumps({
    "filtro_body": {
        "status": 4,
      
    }
})

# API request headers
headers = {
    'Content-Type': 'application/json',
    'Authorization': 'SEU_TOKEN'
}

# Make a POST request to the API
response = requests.request("POST", url, headers=headers, data=payload)

# Parse the JSON response
data = response.json()

# Check if the response was successful
if 'lista' in data:
    # Convert the response data to a DataFrame
    df = pd.DataFrame(data['lista'])

    # Select and organize columns
    columns_to_select = ["codigo", "cliente", "contato", "categoria_primaria", "categoria_secundaria", "tecnico", "total_horas", "data_criacao", "data_solucao", "servico_realizado"]
    if all(col in df.columns for col in columns_to_select):
        df = df[columns_to_select]
        
        # Format date columns if necessary
        df["data_criacao"] = pd.to_datetime(df["data_criacao"])
        df["data_solucao"] = pd.to_datetime(df["data_solucao"])

        # Display DataFrame in tabular format
        print(df.to_string(index=False))
    else:
        print("Some specified columns are not present in the DataFrame returned by the API.")
        # Add logic to handle the situation of missing columns if necessary.
else:
    print("Error in API response:", data)

Explore diferentes visualizações no Power BI para obter insights valiosos e aprimorar suas análises de infraestrutura.

Sobre Janaina Valim 79 Artigos
Como Analista de Dados, minha paixão é desvendar insights valiosos e transformá-los em estratégias de sucesso. Constantemente em busca de novos conhecimentos, minha jornada vai além das planilhas e gráficos. Fora do mundo dos dados, sou uma apreciadora entusiasta de vinhos e cervejas, sempre em busca de novos sabores e experiências.

Seja o primeiro a comentar

Faça um comentário

Seu e-mail não será divulgado.


*