API 제품 회사를 위한 이메일 플랫폼 구축 및 구매
API사는 행위 전자메일을 이용하는 데 있어 독특한 장점을 가지고 있다.만약에 모니터링과 분석 작업을 정확하게 한다면 플랫폼 내부의 상황을 깊이 이해할 수 있다.식견이 있고 선견지명이 있는 공보를 발표할 수 있다.
API 플랫폼 회사에서 행위 전자메일의 흔한 기능은 개발자가 API 통합을 가속화하고 신제품 기능을 시도하도록 도와주며 구독과 플랫폼 문제를 고객에게 알리는 것이다.
aprior article에서는 Moesifbehavioral email solution의 기능을 소개했고, acompanion article에서는 각 API 제품 회사가 사용해야 할 5가지 행위 전자메일을 상세하게 소개했다.
이 글은 기술적으로 자신의 행동 전자 우편 해결 방안을 구축하는 방법을 상세하게 소개할 것이다.
자신의 행동 전자 우편 솔루션을 구축하려면 무엇이 필요합니까?
비헤이비어 e-메일 제품은 최소 세 부분으로 구성됩니다.
API에서 모니터링 데이터 가져오기
자신감에 따라 처음부터 완전한 모니터링 솔루션을 구축할 수도 있고 기존의 소스 오픈 시스템을 사용할 수도 있습니다Prometheus.
프로메테우스는 마이크로 서비스의 모니터링 솔루션이다.프로그램에 프로메테우스 클라이언트를 포함해서 도량을 기록하고 싶을 때 호출할 수 있습니다.프로메테우스 서버는 정기적으로 데이터 원본을 조회하고 결과를 저장합니다.프로메테우스 문서에는 설치를 돕기 위한 설정guide이 있습니다.
Prometheus 클라이언트는 기존의 기본 설정 지표를 가지고 있기 때문에 CPU나 메모리 모니터링 등 기본 기능을 수동으로 설정할 필요가 없습니다.
하나의 노드에 대해.js/Express.js의 API를 기반으로 NPM을 통해 프로메테우스Node.js client를 설치할 수 있습니다. 설정은 몇 줄의 코드만 필요합니다.
const prometheus = require('prom-client');
const register = new prometheus.Registry();
prometheus.collectDefaultMetrics({ register });
기본 지표는 기본이며 API와 무관하므로 더 복잡한 지표를 직접 설정해야 합니다.매우 간단한 API 지표 코드는 다음과 같습니다.
const activeRequests = new client.Gauge({
name: 'activeRequests'
});
registry.registerMetric(activeRequests);
api.use((req, res, next) => {
activeRequests.inc();
res.on('close', () => activeRequests.dec());
next();
});
우리article의 15개 가장 중요한 API 지표 중 프로메테우스는 우리가 확정한 세 가지 지표만 포함하고 나머지 지표는 사용자 정의 코드로 정의해야 한다.규칙 정의 및 데이터 검증
일단 프로메테우스에 감시 데이터를 저장하면 고객이 행위 메일을 촉발할 수 있는 일을 했는지 테스트해야 한다.말 그대로 행위 메일은 사용자의 행위에 관심을 가져야 한다.
이를 위해서는 전자 우편 규칙을 정의하고 모니터링 데이터를 윤문하며 규칙에 따라 데이터를 검증할 수 있는 서비스를 설정해야 합니다.
데이터를 폴링하려면 HTTP API를 통해 데이터를 수집할 수 있는 프로메테우스의 쿼리 언어PromQL를 사용합니다.프로메테우스에서 필요한 데이터를 수집한 후 논리 연산, 어댑터, 정규 표현식을 사용하여 데이터 조회를 감시하는 규칙을 정의할 수 있다.
상태가 400인 응답의 맞춤형 프로메테우스 지표는 다음과 같이 정의할 수 있다.레이블 기능을 사용하여 사용자 ID와 같은 사용자 정의 데이터를 추적의 각 값에 추가할 수 있습니다.
const status400 = new promClient.Counter({
name: "status_400",
labelNames: ["userId"],
});
expressApi.use((req, res, next) => {
res.on("finish", () => {
if (res.statusCode == 400)
status400.labels(req.session.userId).inc();
});
next();
});
지난 24시간 동안 오류를 얻으려면 다음 PromQL 질의를 사용하여 폴링해야 합니다.status_400{userId="abc-123"}[24h]
이 조회들을 작성하는 것은 곧 복잡해질 것이다. 만약 당신이 엔지니어가 아니라면, 특히 어려울 것이다.너는 일반 비즈니스맨에게 이런 문제를 쓰라고 책망할 수 있니rate(http_requests_total{status_code=~"5.*"}[5m]) / rate(http_requests_total[5m])
이 가능하다, ~할 수 있다,...그래서 너는 반드시 편집기를 만들어야 한다.시각적으로든 간략한 규칙, 언어와 자동으로든 공학 학위가 없는 사람이 설정할 수 있다.이 규칙 편집기의 복잡성에 따라 규칙에 지정된 데이터에 따라 필요한 ProMQ를 자동으로 생성할 수 있습니다.사람들이 데이터 수요를 함께 놓을 수 있도록 다른 시각화 편집기가 필요합니다.
사용자에게 이메일 보내기
시스템의 마지막 부분은 사실상 이메일을 보내는 것이다.사용자 데이터로 작성된 전자 메일 템플릿을 정의하고 이전 단계에서 설명한 규칙에 부합하는지 확인하는 방법이 필요합니다.
마찬가지로, 전자 우편 창설자의 기술 기술에 따라, 더 정교한 편집기가 필요할 수도 있다.오늘날 많은 사람들이 HTML과 CSS를 작성할 자신이 있다. 이것은 좋은 일이다. 왜냐하면 풍부한 텍스트 전자메일이 순수한 텍스트 전자메일보다 더 성공적이라는 것이 증명되었기 때문이다.
우리는 이미 유일한 사용자 ID를 모든 프로메테우스 지표와 연결했기 때문에, 이 ID에 속하는 전자메일을 찾아야 한다. 전자메일 시스템은 사용자의 계정 데이터에 접근해야 한다. 대부분의 경우, 이것은 SQL 데이터베이스에 연결되어 그 중의 사용자 프로필을 조회하는 것을 의미한다.예를 들어, SQL 질의는 다음과 같습니다.
SELECT firstName, lastName, email FROM Accounts
WHERE userId=abc-123;
고객의 받은 편지함으로 이메일을 보내는 것은 또 다른 문제입니다.만약 당신이 자신의 전자 우편 서버를 구축한다면, 그것들은 결국 스팸메일 폴더에 들어갈 수도 있다.이 문제를 해결하는 일반적인 방법은 주요 전자 우편 공급자의 허가 목록에 전자 우편 배달 서비스와 통합하는 것이다.그 중 하나는 SendGrid이다.백엔드에서 직접 서비스를 통해 이메일을 보낼 수 있는 API를 제공합니다.그들의 노드.js 패키지는 사용하기에 매우 간단합니다.그것은 심지어 일괄 처리 기능을 가지고 있기 때문에, 너는 한 번에 여러 통의 전자메일을 보낼 수 있다. 이것은 우리의 용례에 있어서 매우 좋은 보충이다.
SendGrid와 통합된 예는 다음과 같습니다.
const sendgrid = require("@sendgrid/mail");
sendgrid.setApiKey(SENDGRID_API_KEY);
sendEmails([
{
to: "[email protected]",
from: "[email protected]",
subject: "Hello recipient 1",
text: "Hello plain world!",
html: "<p>Hello HTML world!</p>",
},
{
to: "[email protected]",
from: "[email protected]",
subject: "Hello recipient 2",
text: "Hello other plain world!",
html: "<p>Hello other HTML world!</p>",
},
]);
async function sendEmails(emails) {
try {
await sendgrid.send(emails);
} catch (error) {
console.error(error);
if (error.response) console.error(error.response.body);
}
}
자체 개발한 시스템 유지 관리
시스템을 구축한 후에는 이를 유지보수해야 한다.그것은 업데이트, 빈틈 복구, 개선이 필요할 뿐만 아니라, 당신의 발전에 따라 더 많은 하드웨어가 필요할 수도 있습니다.
동료, 관리자, 파트너가 자신의 행동을 이해할 수 있도록 이메일 표현을 공유하는 것이 좋습니다.
요약
행위 전자메일 플랫폼을 구축하는 것은 신기한 일이 아니라 API 모니터링에 능통한 프로그래머가 실현할 수 있다.처음부터 모든 것을 구축할 필요가 없이 소스 오픈 도구를 이용하여 더욱 빨리 시작하고 실행할 수 있다.
그러나 이러한 도구를 통합하려면 여전히 대량의 맞춤형 코드가 필요하다.비헤이비어 전자 메일 플랫폼은 비기술 팀 멤버가 작업해야 하며 질의, 규칙 및 전자 메일 템플릿을 작성하는 데 사용되는 편집기와 같은 그래픽 사용자 인터페이스를 구축해야 합니다.발생하고 있는 일을 볼 수 있는 계기판도 좋다.
이러한 GUI를 구축하려면 많은 코드가 필요하며 많은 시간이 소요되는 작업입니다.만약 당신이 소형 API회사를 경영하거나 건설과 유지보수 모니터링과 분석 도구에 투자하고 싶지 않다면 Moesif와 같은 도구를 사용하는 것이 가장 좋다.
Moesif는 API 분석 및 모니터링에 집중하고 비헤이비어 이메일 플랫폼을 0부터 구축했습니다.Dell의 확장형 솔루션은 수십억 개의 API 호출과 수천 개의 이메일을 처리할 수 있으며 몇 줄의 코드만으로 플랫폼에 통합할 수 있습니다.
고객 중심의 완벽한 API 분석 솔루션을 원하십니까?Check out Moesif!
본문은 처음에 the Moesif blog를 위해 쓴 것이다.
Reference
이 문제에 관하여(API 제품 회사를 위한 이메일 플랫폼 구축 및 구매), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/moesif/build-vs-buy-behavioral-email-platform-for-api-product-companies-48fp텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)