This is an automated email from the ASF dual-hosted git repository.
dblevins pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tomee.git
The following commit(s) were added to refs/heads/master by this push:
new ab494d6 add translate in PT to mp-custom-healthcheck
new e7e8a6e Merge pull request #564 from
robinsonvs/mp-custom-healthcheck-portuguese
ab494d6 is described below
commit ab494d6de25b47c7d7d015e1f7d7243839b9b579
Author: Robinson Severo <[email protected]>
AuthorDate: Mon Sep 9 10:11:18 2019 -0300
add translate in PT to mp-custom-healthcheck
---
examples/mp-custom-healthcheck/README_pt.adoc | 166 ++++++++++++++++++++++++++
1 file changed, 166 insertions(+)
diff --git a/examples/mp-custom-healthcheck/README_pt.adoc
b/examples/mp-custom-healthcheck/README_pt.adoc
new file mode 100644
index 0000000..576fd19
--- /dev/null
+++ b/examples/mp-custom-healthcheck/README_pt.adoc
@@ -0,0 +1,166 @@
+= MicroProfile Custom Health Check
+:index-group: MicroProfile
+:jbake-type: page
+:jbake-status: published
+
+Este é um exemplo de como usar MicroProfile Custom Health Check em TomEE.
+
+[discrete]
+==== Health Feature
+
+Os links de status (Health checks) são usados para verificar os estados dos
serviços e recursos que uma aplicação depende ou mesmo expor seus
+status. Por exemplo, em um ambiente de cluster, onde um nó não íntegro precisa
ser descartado (terminated, shutdown) e eventualmente
+substituído por outra instância íntegra.
+
+Por padrão,
https://github.com/eclipse/microprofile-health[microprofile-health-api]
proporciona a saida básica de um nó simplesmente
+acessando o endpoint http://host:port/health.
+
+[source,json]
+----
+{"checks":[],"outcome":"UP","status":"UP"}
+----
+
+Para fornecer uma saída personalizada, digamos que temos uma API do tempo, e
se o serviço se tornar indisponível,
+devemos relatar o serviço como inativo (DOWN).
+
+Para iniciar com uma saída personalizada, é necessário implementar a interface
https://github.com/eclipse/microprofile-health/blob/master/api/src/main/java/org/eclipse/microprofile/health/HealthCheck.java[HealthCheck],
+transforme a classe em um bean gerenciado anotando-a com `@ApplicationScoped`
e `@Health` para ativar a verificação personalizada.
+Veja mais detalhes aqui
https://github.com/apache/geronimo-health/blob/master/geronimo-health/src/main/java/org/apache/geronimo/microprofile/impl/health/cdi/GeronimoHealthExtension.java[GeronimoHealthExtension.java]
+
+[source,java]
+----
+@Health
+@ApplicationScoped
+public class WeatherServiceHealthCheck implements HealthCheck {
+
+ @Inject WeatherGateway weatherGateway;
+
+ @Override
+ public HealthCheckResponse call() {
+ HealthCheckResponseBuilder responseBuilder =
HealthCheckResponse.named("OpenWeatherMap");
+ try {
+ WeatherApiStatus status = weatherGateway.getApiStatus();
+ return responseBuilder.withData("weatherServiceApiUrl",
status.getUrl())
+ .withData("weatherServiceApiVersion", status.getVersion())
+ .withData("weatherServiceMessage", status.getMessage())
+ .up().build();
+ } catch (WeatherException e) {
+ return responseBuilder.withData("weatherServiceErrorMessage",
e.getMessage()).down().build();
+ }
+ }
+}
+----
+
+No exemplo acima, o link de status é
https://openweathermap.org/appid[OpenWeatherMap] (_somente ilustrativo_) que
fornece uma
+plano de assinatura para acessar seus serviços e, se o limite de chamadas for
excedido, a API ficará indisponível até sua
+renovação.
+
+[discrete]
+=== Exemplos
+
+.Executando o aplicativo
+----
+ mvn clean install tomee:run
+----
+
+[discrete]
+==== Exemplo 1
+
+Quando acessado o endpoint /health, OpenWeatherMap nos diz que nossas chamadas
restantes estão acabando e que devemos tomar
+uma ação antes que fique indisponível.
+
+----
+curl http://localhost:8080/mp-custom-healthcheck/health
+----
+
+[source,json]
+----
+{
+ "checks":[
+ {
+ "data":{
+ "weatherServiceApiVersion":"2.5",
+ "weatherServiceMessage":"Your account will become unavailable soon
due to limitation of your
+ subscription type. Remaining API calls are
1",
+ "weatherServiceApiUrl":"http://api.openweathermap.org/data/2.5/"
+ },
+ "name":"OpenWeatherMap",
+ "state":"UP"
+ }
+ ],
+ "outcome":"UP",
+ "status":"UP"
+}
+----
+
+[discrete]
+==== Exemplo 2
+
+A API do tempo ainda está funcionando bem.
+
+----
+curl http://localhost:8080/mp-custom-healthcheck/weather/day/status
+----
+
+[source,text]
+----
+Hi, today is a sunny day!
+----
+
+[discrete]
+==== Exemplo 3
+
+Quando acessamos novamente o endpoint /health, OpenWeatherMap nos diz que
nossa conta está temporariamente bloqueada e esse
+serviço é relatado como inativo (DOWN).
+
+----
+curl http://localhost:8080/mp-custom-healthcheck/health
+----
+
+[source,json]
+----
+{
+ "checks":[
+ {
+ "data":{
+ "weatherServiceErrorMessage":"Your account is temporary blocked
due to exceeding of
+ requests limitation of your subscription type. Please choose the
proper subscription
+ http://openweathermap.org/price"
+ },
+ "name":"weatherservice",
+ "state":"DOWN"
+ }
+ ],
+ "outcome":"DOWN",
+ "status":"DOWN"
+}
+----
+
+[discrete]
+==== Exemplo 4
+
+A API do tempo parou.
+
+----
+curl http://localhost:8080/mp-custom-healthcheck/weather/day/status
+----
+
+[source,text]
+----
+Weather Service is unavailable at moment, retry later.
+----
+
+[discrete]
+===== Executando os testes
+
+Você pode também testar usando
link:src/test/java/org/superbiz/rest/WeatherServiceTest.java[WeatherServiceTest.java]
disponível no projeto.
+
+----
+mvn clean test
+----
+
+----
+[INFO] Results:
+[INFO]
+[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped:
+----