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.0.tar.gz (5.0 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.0-py3-none-any.whl (5.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: serapis_metrics-1.0.0.tar.gz
  • Upload date:
  • Size: 5.0 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.0.tar.gz
Algorithm Hash digest
SHA256 e571e90ef8aa20bd1576bcf80ad46415d52c37b7d60bc5fa955b462627d49ab4
MD5 35de39eb930aab41ef13608fba55cc55
BLAKE2b-256 fd350ab15450bffc8107d633b9bee52324b8d9015eeb9d7c35fa0ef744d023b7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for serapis_metrics-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 86b491a81009815551b972e8fdf56ae38694f7fab66c0e2024e847a420b91391
MD5 86e84347de01001ff22f95505e6987da
BLAKE2b-256 030f5cb92c2f058afabcd50963f02c1338372678432ddd3b1d0b1c1031c241f0

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