Fabric avanza a grandes pasos y si bien hoy cuenta con una sección de monitoreo de cada actividad en el tenant, puede que sea demasiado para nuestro análisis diario o para un perfil de terminado.
Si querés armar un tablero conociendo los horarios en que corren tus ítems o analizando las corridas que tuvieron, entonces seguí leyendo.
Este artículo nos muestra como obtener de forma simple los datos de las corridas de los fabric pipelines y fabric notebooks.
Para trabajar en esta solución necesitamos tener conocimientos básicos de setear la todo para usar la Fabric rest api. Podes leerlo en este artículo.
Conociendo el funcionamiento de la API vamos a ejecutar código de python para obtener esos datos. Podemos hacerlo desde un notebook de fabric como en cualquier otro espacio que querramos para transformar estos datos.
En esta solución vamos a ejecutar le código python buscando obtener los schedules y las instancias (corridas) de los Data Pipelines y Notebooks dentro de una área de trabajo. La librería SimplePBI nos permite hacerlo simple usando su clase Schedules e ítems en el objeto Core
*NOTA: los objetos y clases de la librería están tal como se categorizan en el índice de la documentación de la Fabric Rest API. *
Para lograrlo, ejecutaremos los siguientes pasos.
- Obtener los DataPipelines del área de trabajo
- Obtener los Notebooks del área de trabajo
- Juntar schedules e instancias de los Data Pipelines
- Juntar schedules e instnacias de los Notebooks
- Agrupar en dos dataframes
Veamos los detalles de las librería.
Importamos objetos
from simplepbi import token
from simplepbi.fabric import core
Variables para autenticar y buscar area
TENANT_ID = “xxxxxx-xxxx-xxxx-xxxx-xxxxxx”
power_bi_client_id = “xxxxxx-xxxx-xxxx-xxxx-xxxxxx”
power_bi_secret = ““
workspace_id = “xxxxxx-xxxx-xxxx-xxxx-xxxxxx”
Crear objetos
t = token.Token(TENANT_ID,power_bi_client_id,None,None,power_bi_secret,use_service_principal=True)
it = core.Items(t.token)
job = core.Scheduler(t.token)
Obtener los items del area de trabajo
notebooks_resp = it.list_items(workspace_id, type=”Notebook”)
pipelines_resp = it.list_items(workspace_id, type=”DataPipeline”)
Ejemplo de como obtener schedules o instancias
job.list_item_schedules(workspace_id, item_id, “RunNotebook”, False)
job.list_item_job_instances(workspace_id, item_id)
Con esas simples líneas podemos obtener los datos deseados. Luego cada quien puede procesarlos como guste. En mi caso, elegí procesar las instancias con un mensaje de fallo en caso que lo haya y los schedules mostrando uno por tiempo configurado. El código puede correrse desde Fabric notebook y hay una celda para usar pandas u otra para usar spark frame.
Pueden encontrar el notebook en mi github.
Espero que les sirva para generar los datos para explotarlos luego como les quede más cómodo y útil, ya sea con Power Bi u otro modo. No se olviden de usar Azure Key Vaults para no exponer sus secretos como indica este artículo.