Skip to main content

A metrics collection library for Serapis projects with multi-Python support

Project description

📊 Serapis Metrics Library

Una biblioteca simple y eficiente para recopilar métricas de uso en proyectos Serapis, compatible con Python 2.7, Python 3.x y PyRevit.

🚀 Características

  • Seguimiento de métricas de uso
  • Identificación única de usuarios
  • Manejo automático de errores
  • Fácil integración con cualquier proyecto Python
  • Compatibilidad con Python 2.7, Python 3.x y PyRevit

📋 Requisitos

  • Python 2.7 o superior
  • Conexión a internet para enviar métricas
  • Para PyRevit: IronPython 2.7

💻 Instalación

Usando pip

pip install serapis-metrics

Desde el código fuente

git clone https://github.com/asmorodina/serapis-metrics.git
cd serapis-metrics
pip install -e .

🔧 Configuración

La biblioteca usa variables de entorno para su configuración:

# URL del backend (opcional, valor por defecto: http://localhost:3000)
export SERAPIS_BACKEND_URL="http://tu-backend.com"

📖 Uso

Ejemplo Básico (Python 3.x)

from serapis_metrics import initialize_metrics

# Tu ID de versión
version_id = "tu-version-id"

# Inicializar métricas
initialize_metrics(version_id)
print("Métricas inicializadas correctamente")

Ejemplo con PyRevit

# En tu script de PyRevit
from serapis_metrics import initialize_metrics, track_usage

# Tu ID de versión
version_id = "tu-version-id"

# Inicializar métricas
try:
    initialize_metrics(version_id)
    print("Métricas inicializadas correctamente")
except Exception as e:
    print("Error al inicializar métricas: {}".format(e))

Seguimiento Personalizado de Uso

from serapis_metrics import track_usage, get_user_hash

# Obtener el hash del usuario
user_hash = get_user_hash()

# Registrar uso específico
track_usage(user_hash, "tu-version-id")

Manejo de Errores

from serapis_metrics import report_error

try:
    # Tu código aquí
    resultado = alguna_funcion()
except Exception as e:
    # Reportar el error
    report_error(e, context="nombre_de_la_funcion")

📚 Referencia de API

initialize_metrics(version_id: str)

Inicializa el sistema de métricas para una versión específica.

  • Parámetros:

    • version_id (str): Identificador único de versión
  • Excepciones:

    • Lanza una excepción si hay problemas de conexión o inicialización

track_usage(user_hash: str, version_id: str)

Registra el uso de una versión específica por un usuario.

  • Parámetros:

    • user_hash (str): Hash único del usuario
    • version_id (str): Identificador de versión
  • Excepciones:

    • RuntimeError: Si hay problemas al enviar las métricas

get_user_hash() -> str

Obtiene o genera un hash único para el usuario actual.

  • Retorna:

    • str: Hash único del usuario
  • Excepciones:

    • Lanza una excepción si no se puede generar o recuperar el hash

report_error(exception_obj: Exception, context: str = None)

Envía información de error al backend.

  • Parámetros:
    • exception_obj (Exception): El error que ha sido capturado
    • context (str, opcional): Nombre de la función o parte del código donde ocurrió el error

🔍 Notas de Compatibilidad

Python 2.7

  • Compatible con IronPython 2.7 (PyRevit)
  • Usa urllib2 para peticiones HTTP
  • Soporta variables de entorno del sistema

Python 3.x

  • Usa urllib.request para peticiones HTTP
  • Soporta todas las características modernas de Python
  • Manejo mejorado de strings Unicode

PyRevit

  • Compatible con el entorno de IronPython 2.7
  • Usa System.Environment para variables de entorno
  • Optimizado para el entorno de Revit

🤝 Contribuir

Las contribuciones son bienvenidas. Por favor, lee CONTRIBUTING.md para detalles sobre nuestro código de conducta y el proceso para enviarnos pull requests.

📄 Licencia

Este proyecto está licenciado bajo la Licencia MIT - ver el archivo LICENSE.md para más detalles.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

serapis_metrics-1.0.1.tar.gz (5.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

serapis_metrics-1.0.1-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

File details

Details for the file serapis_metrics-1.0.1.tar.gz.

File metadata

  • Download URL: serapis_metrics-1.0.1.tar.gz
  • Upload date:
  • Size: 5.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for serapis_metrics-1.0.1.tar.gz
Algorithm Hash digest
SHA256 09c080dff04ae679fb5cc03e01a762487bee49619cedb3fcc8ad79686311763f
MD5 44fd17998fa0b5fb9f7d3c428dea2440
BLAKE2b-256 223e9f7ab4615e230e9977e6a8d6dfa29ab68d484e629bd2b8b16b8803036c00

See more details on using hashes here.

File details

Details for the file serapis_metrics-1.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for serapis_metrics-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 de7e35a3e31918bc9d823cc0a3f9f615234833dde0bbe28cf1e8a411ce084b3a
MD5 4c68f54997249b5701f4b2cd46150153
BLAKE2b-256 fc75435d4402068fce2538a90aadc475999a7c5d354416061a3ac34539f80db8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page