#Administración del sistema

0 Seguidores · 77 Publicaciones

La administración del sistema se refiere a la administración de uno o más sistemas de hardware y software.

Documentation en la administración del sistema de InterSystems.

Artículo Mathew Lambert · mar 4, 2020 5m read
¡Hola Comunidad!
Esta es una explicación acerca de:
  • por qué es importante obtener el $zv (el POR QUÉ),
  • qué significan los componentes de $zv (el QUE),
  • y cómo recopilar $zv (el CÓMO). 

(La guía definitiva sobre $zv para la galaxia ISC en palabras sencillas y entendibles).

0
0 258
Artículo Dani Fibla · feb 26, 2020 1m read

No pretendo decir que esto sea una guía de "buenas prácticas", pero estoy en una situación particular en la que necesito impedir que los usuarios inicien una producción de Ensemble “retirada” en un namespace renombrado. Sigue siendo un namespace activo, por lo que debemos mantenerlo disponible para acceder al visor de mensajes... afortunadamente, solo por un tiempo.

Es un truco …

Abrimos la clase de la Producción en el estudio y añadimos el siguiente ClassMethod:

ClassMethod OnStart() As %Status
{
    Return $system.Status.Error(5001,"THIS PRODUCTION IS DISABLED.")
}
0
0 195
Artículo Mario Sanchez Macias · ene 16, 2020 9m read

¡Hola Comunidad! 

Voy a empezar a traducir los artículos de mi compañero Murray sobre rendimiento, pues son muy interesantes y merece la pena echarles un vistazo. Aprovecho para comentar que si tenéis preguntas y /o problemas de rendimiento os animéis a escribir y entre todos trataremos de ayudaros. Empecemos...

Tu aplicación está implementada y todo funciona bien. ¡Genial, enhorabuena! Pero, de repente, el teléfono empieza a sonar sin parar: son usuarios que se quejan de que la aplicación a veces se vuelve "lenta". Pero... ¿qué quiere decir eso? ¿A veces? ¿De qué herramientas dispones y a qué estadísticas deberías prestar atención para encontrar y resolver la lentitud? ¿La infraestructura de tu sistema está a la altura de la carga de usuarios? ¿Qué preguntas de diseño de infraestructura deberías haber hecho antes de haber pasado a producción? ¿Cómo puedes hacer la planificación de capacidad para nuevo hardware con confianza y sin gastar en más hardware del necesario? ¿Cómo hacer que el teléfono deje de sonar? ¿Cómo podrías haber evitado que sonara desde un principio?

0
0 272
Artículo Alberto Fuentes · dic 16, 2019 7m read

En InterSystems IRIS 2019.1.4 se incluye ya el servicio /api/monitor, que permite acceder a métricas de IRIS en formato Prometheus.

Esto es una gran noticia para aquellos interesados en utilizar métricas de IRIS como parte de su solución de monitorización y alertas. Este servicio (API) es un componente del nuevo System Alerting and Monitoring (SAM) que se liberará en próximas versiones de InterSystems IRIS.

Sin embargo, no es necesario esperar a que se libere System Alerting and Monitoring (SAM) para empezar a planificar y probar esta API para monitorizar tus instancias de IRIS. En próximos artículos trataremos en profundidad las métricas disponibles, su significado y también construiremos cuadros de mando de ejemplo interactivos. Pero en primer lugar, vamos a comenzar con algunas cuestiones básicas.

IRIS (y Caché) está siempre capturando decenas de métricas sobre sí mismo y la plataforma en la que está ejecutándose. Siempre han existido diferentes maneras de capturar estas métricas para monitorizar IRIS o Caché. En la práctica no muchas instalaciones utilizan las soluciones incluidas en IRIS / Caché. Por ejemplo, el History Monitor ha estado disponible desde hace tiempo como base de datos histórica de rendimiento y utilización del sistema. Sin embargo, no había una manera demasiado obvia de aprovechar estas métricas en tiempo real.

Las soluciones construidas sobre la plataforma InterSystems IRIS están pasando de una sola aplicación monolítica ejecutándose en unas pocas instancias en las propias instalaciones de una organización a ser soluciones distribuidas desplegadas en cualquier parte. Para muchos casos de uso, las opciones de monitorización de IRIS existentes no se terminan de adaptar a estos nuevos paradigmas. Para solventar este problema, en lugar de reinventar la rueda, InterSystems utilizará soluciones conocidas y bien probadas del mundo open source para monitorización y alertas.

Prometheus

Prometheus es una solución open source de monitorización muy conocida y ampliamente adoptada. Dispone de una gran variedad de plugins. Está diseñada para poder trabajar en entornos de cloud pero también resulta igual de útil para aplicaciones desplegadas en nuestras propias instalaciones. Los plugins incluyen sistemas operativos, servidores web como Apache y otras muchas aplicaciones. Prometheus se utiliza generalmente junto con un cliente front-end o de presentación, como por ejemplo Grafana, que provee una interfaz gráfica que es extremadamente adaptable a nuestras necesidades.

Grafana

Grafana es también open source. Conforme esta serie de artículos progrese, pasaremos ejemplos de plantillas de cuadros de mando para escenarios típicos. Podrás utilizar esos ejemplos como base para diseñar los cuadros de mando que te interesen.

El gran potencial de estas herramientas surge cuando combinas las métricas de IRIS en el contexto de las métricas de tu propia solución. Desde los componentes de la plataforma donde se ejecuta, el sistema operativo, IRIS y especialmente cuando además se añade instrumentación para monitorizar tus propias aplicaciones.

¿No he visto esto antes en algún sitio?

Monitorizar IRIS / Caché con Prometheus y Grafana no es algo nuevo. Se han utilizado estas aplicaciones durante años. Si buscas en la Comunidad de Desarrolladores el término "Prometheus" encontrarás otros artículos como por ejemplo estos excelentes artículos de Mikhail Khomenko que muestran cómo exponer métricas de Caché para utilizarlas con Prometheus.

La diferencia es que ahora la API /api/monitor está incluida y habilitada por defecto. No necesitas incluir código para exponer estas métricas.

Introducción rápida a Prometheus

A continuación vamos a hacer una primera orientación rápida a Prometheus y su terminología. Vamos a verlo a alto nivel y a preparar el trabajo de base que servirá para dejar la puerta abierta para que penséis cómo visualizar y consumir las métricas de IRIS o de otras fuentes.

Prometheus funciona obteniendo datos en formato de serie temporal expuestos por aplicaciones a través de una URL (por ejemplo la API de /api/monitor). Existen librerías de exportadores y clientes para muchos lenguajes, frameworks y aplicaciones open source — por ejemplo para servidores web como Apache, distintos sistemas operativos, docker, Kubernetes, bases de datos y ahora IRIS —.

Los exportadores se utilizan para instrumentalizar aplicaciones y servicios de manera que expongan (hagan accesible) las métricas en una URL. Los componentes estándar como los servidores web, bases de datos y demás se soportan por los exportadores core. Existen otros muchos exportadores open source disponibles en la comunidad Prometheus.

Terminología Prometheus

Estos son algunos términos que vamos a manejar:

  • Los destinos son aquellos servicios que quieres monitorizar, como un servidor, una aplicación o un servicio como Apache, IRIS o tu propia aplicación.
  • Prometheus interroga a estos destinos utilizando HTTP para obtener métricas en formato de serie temporal.
  • Los datos en formato de serie temporal se exponen por las aplicaciones, como por ejemplo IRIS, o través de exportadores.
  • Los exportadores se utilizan para aquellos elementos que no podemos controlar como por ejemplo métricas del kernel de Linux.
  • Los datos en formato de serie temporal resultantes se almacenan localmente en el servidor de Prometheus en una base de datos**.
  • La base de datos de series temporales se puede consultar utilizando un lenguaje de consulta optimizado para ello PromQL. Utilizaremos este lenguaje para crear alertas o desde una aplicación cliente como Grafana para mostrar las métricas en un cuadro de mando.

** Spoiler Alert! Por razones de seguridad, escalabilidad, alta disponibilidad y eficiencia, en la nueva solución System Alerting and Monitoring (SAM) la base de datos utilizada para almacenar las series temporales de Prometheus será InterSytems IRIS! El acceso a la base de datos de Prometheus (IRIS) será transparente y no supondrá ninguna circunstancia especial para acceder desde otras aplicaciones como Grafana.

Modelo de datos de Prometheus

Las métricas que retorna la API /api/monitor están en formato Prometheus. Prometheus utiliza un formato simple basado en una métrica por línea:

 [ (time n, value n), ....]

Estas métricas pueden etiquetarse como parejas clave-valor. Las etiquetas son una forma muy potente de filtrar métricas y dimensiones. Por ejemplo, vamos a examinar esta métrica del servicio/api/monitor que retorna la cantidad de espacio libre para journal:

 iris_jrn_free_space{id="WIJ",dir=”/fast/wij/"} 401562.83

El identificador indica qué métrica es y de dónde viene:

iris_jrn_free_space

Se pueden utilizar diferentes etiquetas para decorar las métricas, y así utilizarlas a la hora de filtrar y consultar. En el ejemplo, podemos ver el WIJ y el directorio donde se guarda el propio WIJ:

id="WIJ",dir="/fast/wij/"

Y finalmente, observamos también un valor: 401562.83 (MB).

¿Qué métricas tenemos disponibles para IRIS?

En la documentación aparece la lista de las métricas disponibles. Aunque también puedes simplemente consultar la API en el endpoint /api/monitor/metricspara que te devuelva la lista de las métricas.

¿Qué debería monitorizar?

Ten en cuenta los siguientes puntos a la hora de pensar cómo debes monitorizar tus sistemas y aplicaciones.

Cuando te sea posible, utiliza métricas que afecten a los usuarios:

  • A los usuarios no les importa que una de tus máquinas esté corta de CPU.
  • A los usuarios sí que les importa si el servicio que utilizan es lento o está teniendo errores.
  • En tus cuadros de mando principales céntrate en métricas de alto nivel que impacten directamente en los usuarios.

Evita construir una pantalla llena de gráficas en tus cuadros de mando:

  • Los humanos, en general, no podemos asimilar demasiados datos a la vez.
  • Simplifica y utiliza por ejemplo un cuadro de mando por servicio.

Piensa en términos de servicios, no de máquinas:

  • Una vez hayas aislado un problema a un servicio, podrás profundizar y ver realmente cuál es la máquina que presenta el problema.

Referencias

Documentación y descargas: Prometheus y Grafana.

@Murray Oldfield presentó una sesión sobre SAM (incluyendo Prometheus y Grafana) en el pasado InterSystems Global Summit 2019. Encontrarás más información en InterSystems Learning Services buscando el término "System Alerting and Monitoring Made Easy".

0
0 369
Artículo Estevan Martinez · nov 27, 2019 10m read

++ Update: August 1, 2018

El uso de la dirección IP virtual (VIP) de InterSystems incorporada en Mirroring de la base de datos de Caché tiene ciertas limitaciones. En particular, solo puede utilizarse cuando los miembros Mirror se encuentran en la misma subred. Cuando se utilizan varios centros de datos, las subredes normalmente no se “extienden” más allá del centro de datos físico debido a la complejidad añadida de la red (puede obtener más información aquí). Por las mismas razones, la IP virtual con frecuencia no puede utilizarse cuando la base de datos se aloja en la nube.

0
0 531
Artículo Ricardo Paiva · nov 14, 2019 15m read
¡Hola Comunidad!

Suponga que desarrolló su propia aplicación con la tecnología de InterSystems y ahora quiere realizar varias implementaciones en sus distintos clientes. Durante el proceso de desarrollo usted escribió una guía de instalación detallada para aplicarla, ya que no solo necesita importar clases, también configurar el entorno de acuerdo a sus necesidades. 

Para atender esta tarea específica, InterSystems creó una herramienta especial llamada %Installer. Siga con la lectura para saber cómo utilizarla.

0
0 400
Artículo Mario Sanchez Macias · nov 5, 2019 11m read

¡Hola Comunidad!

En publicaciones anteriores, mi compañero Murray mostró cómo se pueden recopilar métricas históricas de rendimiento utilizando los pButtons. Hablamos primero de los pButtons porque se instalan con cada instancia de las plataformas de datos (Ensemble, Caché, …). Sin embargo, existen otras formas para recopilar, procesar y desplegar las métricas de rendimiento de Caché, en tiempo real, ya sea con la finalidad de realizar una supervisión sencilla o, lo más importante, para llevar a cabo operaciones analíticas mucho más sofisticadas y obtener la capacidad de planificación. Uno de los métodos utilizados más comunes para recopilar datos es el SNMP (Protocolo simple de administración de la red).

0
0 275
Artículo Ricardo Paiva · oct 18, 2019 9m read

¡Hola Comunidad!

En esta serie de artículos, me gustaría presentar y discutir varios métodos posibles para el desarrollo de software con las tecnologías de InterSystems y GitLab. Trataré temas como:

  • Git 101
  • El flujo de Git (proceso de desarrollo)
  • La instalación de GitLab
  • Flujo de trabajo con GitLab
  • Entrega continua
  • Instalación y configuración de GitLab
  • Integración Continua/Entrega Continua (IC/DC) de GitLab
0
0 1090
Artículo Ricardo Paiva · oct 9, 2019 2m read

¡Hola a tod@s!

En esta serie de artículos me gustaría presentar y discutir varios enfoques posibles para desarrollar software mediante las tecnologías de InterSystems y GitLab. Abordaré temas como:

0
0 244
Artículo Nancy Martínez · sep 30, 2019 2m read

¡Hola a tod@s!

Cuando se ejecuta la tarea integrada de Purga en Ensemble (Ens.Util.Tasks.Purge) existen tres parámetros: DaysToKeep, BodiesToo y KeepIntegrity. Este artículo se centra en el parámetro de tipo booleano KeepIntegrity, pero podéis encontrar más información sobre cómo ejecutar esta tarea en el siguiente link:

http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=...

KeepIntegrity determina qué mensajes de Ensemble se marcan para ser borrados dentro del tiempo especificado en el parámetro DaysToKeep.

0
0 146
Artículo Ricardo Paiva · sep 30, 2019 7m read

Todo el mundo tiene un entorno para realizar pruebas.

Algunas personas tienen la suerte de tener un entorno totalmente separado para Producción.

-- Anónimo

.

En esta serie de artículos, me gustaría presentar y discutir varios métodos posibles para el desarrollo de software, con las tecnologías de InterSystems y GitLab. Trataré temas como:

  • Git 101
  • Git flow (development process)
  • Instalación de GitLab
  • Flujo de trabajo de GitLab
  • GitLab CI/CD (Integración Continua/Entrega Continua)
  • CI/CD (Integración Continua/Entrega Continua) con contenedores

En esta primera parte se abordará la piedra angular del desarrollo de software moderno - el sistema de control de las versiones de Git y varios flujos de Git.

0
0 684
Artículo Estevan Martinez · ago 29, 2019 7m read

¡Hola a tod@s de nuevo!

En este tercer artículo (consulte la Parte 1 y la Parte 2) continúo con la presentación de la estructura interna de las bases de datos en Caché. Esta vez, les contaré algunas cosas interesantes y les explicaré cómo mi proyecto sobre el Explorador de bloques en Caché puede ayudarles a hacer que su trabajo sea más productivo.

0
0 238
Artículo Estevan Martinez · jul 30, 2019 6m read

¡Hola a tod@s!

Este artículo es la continuación de mi artículo anterior, donde expliqué cómo es la estructura de una base de datos en Caché. En ese artículo describí los tipos de bloques, las conexiones que existen entre ellos y su relación con los globales. Como el artículo era completamente teórico,  realicé un proyecto que ayuda a visualizar el árbol de bloques, y en este artículo explicaré su funcionamiento muy detalladamente.

0
0 782
Artículo Estevan Martinez · jul 23, 2019 7m read


Los globales de InterSystems Caché proporcionan un conjunto de funciones muy útiles para los desarrolladores. Pero, ¿por qué los globales son tan rápidos y eficientes?

Teoría

Básicamente, la base de datos de Caché es un catálogo con el mismo nombre que la base de datos y contiene el archivo CACHE.DAT. En los sistemas Unix, la base de datos también puede ser una partición normal del disco.

0
0 507
Artículo Nancy Martínez · jun 28, 2019 9m read

¡Hola Comunidad!

En este artículo encontrarán algunosejemplos de conversiones y operaciones que les pueden resultar útiles. También incluyo enlaces a la documentación donde se puede obtener másinformación.

Cuando escribíesto, la hora del Este "Eastern Daylight Time" estaba activa en el Caché de mi sistema.

0
0 966