Edité la tabla de enrutamiento y nada cambió
Edité la tabla de enrutamiento y nada cambió
no default routing table in new targets! en la misma línea significa que la nueva configuración no tenía reglas en
default. A menudo porque un filter al que cada regla hacía referencia falta o está
deshabilitado.¿Por qué no funciona vendor1:from:==:MyBrand?
¿Por qué no funciona vendor1:from:==:MyBrand?
== es un operador numérico. Esa línea no meramente falla al emparejar. Falla al parsear, y se lleva
la recarga entera con ella. Usa equals para texto:Mi patrón no empareja nada y nada se queja
Mi patrón no empareja nada y nada se queja
matches es una expresión regular y está anclada. Debe emparejar todo el valor. ^61.*
empareja un destino completo; un 61 desnudo empareja solo la cadena de dos caracteres 61.startsWith compara texto literal. Una expresión regular entregada a él pregunta si el valor
empieza literalmente con ^(?:\+61, cosa que nada hace, así que la regla carga, se muestra y nunca se dispara. El
panel avisa sobre esto; el gateway no.Las reglas debajo de mi catch-all nunca se ejecutan
Las reglas debajo de mi catch-all nunca se ejecutan
NORMAL se detiene en la primera coincidencia, y un catch-all empareja todo, así que
cualquier cosa debajo es inalcanzable. Nada rechaza la tabla; las reglas parsean perfectamente.Muévelo al último. La tabla se reporta bajo unreachable-rules en routing_warnings en /ops/health,
y el panel cuenta las reglas muertas por ti.Deshabilité un filter para ampliar una regla y la regla dejó de emparejar del todo
Deshabilité un filter para ampliar una regla y la regla dejó de emparejar del todo
Deshabilité un filter para retirar una ruta y no pasó nada
Deshabilité un filter para retirar una ruta y no pasó nada
default sin reglas, toda la recarga se rechazó y las tablas anteriores
siguen en servicio.Deshabilitar un filter no es una forma de retirar una ruta. Borra o deshabilita la regla.¿Cómo averiguo por qué un mensaje específico no emparejó?
¿Cómo averiguo por qué un mensaje específico no emparejó?
outSms.routing.debug. Registra cada
regla de cada mensaje y renderiza el objeto de mensaje completo para hacerlo, así que es inusable a las tasas
donde se hacen las preguntas de enrutamiento.El log se ha quedado en silencio. ¿La regla rota está arreglada?
El log se ha quedado en silencio. ¿La regla rota está arreglada?
routing.rule.broken se registra una vez por regla, y el contador se resetea solo cuando
se publica una nueva tabla de enrutamiento. El silencio es igualmente consistente con “ya reportado”.Vigila routing_rules_broken en /ops/health, el mismo hecho como un número. Y tras un arreglo, espera a que
la línea reaparezca en lugar de a que se quede ausente.routing_failed_queue no es cero. ¿Qué significa?
routing_failed_queue no es cero. ¿Qué significa?
outSms.enqueueFailedRouting está establecido. Así que en la configuración ordinaria esos
mensajes se han ido, y este contador es el único sitio donde ese hecho existe.Alerta con él. routing_retry_queue es el vecino benigno: mensajes esperando un backoff, ordinario
en números pequeños, una brecha de enrutamiento cuando se mantiene alto.¿Importa el orden de reglas en una tabla de menor coste?
¿Importa el orden de reglas en una tabla de menor coste?
LCR escanea cada regla, trata las coincidencias como alternativas, y deja que la tarifa de coste decida.
Reordenar no cambia nada.Si una tabla de menor coste se comporta como una tabla de primera coincidencia, comprueba el nombre de la función. Un nombre que no
se reconoce, como ->function(LRC), cae a NORMAL con solo una línea de log. Consulta
Enrutamiento por menor coste.Un proveedor en mi tabla LCR no tiene tarifa de coste. ¿Bloqueará tráfico?
Un proveedor en mi tabla LCR no tiene tarifa de coste. ¿Bloqueará tráfico?
¿Por qué mi grupo de proveedores está ignorando sus pesos, o sus miembros?
¿Por qué mi grupo de proveedores está ignorando sus pesos, o sus miembros?
weighted. Establece uno bajo round-robin o
failover y nada se divide, cosa que el gateway dice en WARN en lugar de dejarte creer
lo contrario.Y los bloques de grupo deben venir antes de la primera cabecera [table]. Dentro de un bloque de tabla una línea de miembro
no empareja nada y se descarta silenciosamente, así que el grupo tiene menos miembros de los que aparenta tener.¿Puede una regla enviar un mensaje a cada miembro de un grupo?
¿Puede una regla enviar un mensaje a cada miembro de un grupo?
+copied en una regla de grupo aún
copia a un miembro.Si cada miembro está caído la regla no envía nada, registra cause=group-all-dead nombrando a todos los que probó,
y el escaneo continúa, que es lo que mantiene alcanzable una regla de fallback escrita debajo.¿Qué pasa cuando una cola se llena?
¿Qué pasa cuando una cola se llena?
ESME_RMSGQFUL (0x14) y nada cobrado, REST
con 503 queueFull y cualquier cobro ya hecho se reembolsa. Dentro del gateway una cola llena es
backpressure: el router esperando una cola de worker llena es el router yendo a la velocidad que el proveedor puede
tomar.smsg.queue.capacity e inQueue.capacity ambos por defecto están en 0, que significa sin límite. No hay límite por
defecto porque un límite es una afirmación sobre tu propio tráfico y heap.¿Cuántos submit_sm puede costarme un mensaje?
¿Cuántos submit_sm puede costarme un mensaje?
maxRetries acota el total en un proveedor, entre reintentos dentro del worker y cada viaje de vuelta a través
del router.Solía acotar solo la mitad dentro del worker, con cada salto de router entregando una nueva asignación. Así que 1
junto a veinte intentos de enrutamiento significaba aproximadamente 100 PDUs para un mensaje. Reconsidera el valor si
lo ajustaste alrededor de eso. Hacer failover a un proveedor diferente aún empieza un presupuesto nuevo.¿Necesito RabbitMQ?
¿Necesito RabbitMQ?
amqp.bridge.degraded.Los mensajes se aceptan y luego desaparecen. ¿Dónde empiezo?
Los mensajes se aceptan y luego desaparecen. ¿Dónde empiezo?
maxAttempts es la única razón que significa enrutamiento. headerNotApproved, templateNotMatched,
missingMandatoryTlv, insufficientCredit y filtered todos significan que el mensaje se rechazó antes de que
el enrutamiento fuera siquiera alcanzado. Recorrido completo:
Nada se entrega.