Files
knowledge/categories/application.md
T
2018-11-13 11:32:40 +11:00

3.5 KiB

Search

  • ElasticSearch
    • Logstash
    • Kibana

APM

Newrelic

The famous APM service provider, it support multiple languages, it requires you install agent to the application.

Datadog

Another alternative APM service provider

Pinpoint

The Java based open source APM.

Ping check service

Pingdom

It's a online web services, it gives you ability to do ping to your website from different regions, web servers.

Monitor

  • Bosun
  • Prometheus

API

RPC(remote procedure call)

- disadvantages
	- coupling
	- clients needs to know the request procedure names
- advantages
	- more freedoms to define any requests.
- examples: <https://api.slack.com/methods>

Restful /Representational State Transfer

- Easy to cache
- every url represent a resource
- disadvantages some special method is hard to use restful to name it. like /login, /resetpassword
- examples [https://developer.github.com/v3/](https://developer.github.com/v3/)
- methods
	- GET
	- POST
	- PUT
    - DELETE

GraphQL

It Can allows you to define fields you want to have.

gRPC

- protocol buffers
    // The greeter service definition.
    service Greeter {
        // Sends a greeting
        rpc SayHello (HelloRequest) returns (HelloReply) {}
    }
    // The request message containing the user's name.
    message HelloRequest {
        string name = 1;
    }
    // The response message containing the greetings
    message HelloReply {
        string message = 1;
    }
- A opensource  remote procedure call framework based on HTTP2 and protobuf
- advantages
	- baed on HTTP2, better performance
	- call remote like local method, and support multiple language
	- protobuf serialization and deserialization is faster than JSON

JSON-RPC

It's a little bit similar with gRPC one, but you define the action method in the JSON request body.

POST /api

{
    "jsonrpc": "2.0",
    "method": "subtract",
    "params": [42, 23],
    "id": 1
}

Links:

Open API

The OpenAPI Specification (OAS) defines a standard, programming language-agnostic interface description for REST APIs, which allows both humans and computers to discover and understand the capabilities of a service without requiring access to source code, additional documentation, or inspection of network traffic. When properly defined via OpenAPI, a consumer can understand and interact with the remote service with a minimal amount of implementation logic. Similar to what interface descriptions have done for lower-level programming, the OpenAPI Specification removes guesswork in calling a service. Open API can be described in yaml or json

Use cases

  • Interactive documentation
  • Mock server generation
  • Client code generation
  • Automation testing

Implementation

Tools

Redoc OpenAPI/Swagger-generated API Reference Documentation, which gives you beautiful interface to the API spec file.

redoc-cli is a command line tool to generate a single HTML version of API Spec file.

redoc-cli bundle swagger.json

Some sample swagger files: http://rackerlabs.github.io/wadl2swagger/openstack.html

Log and Error

Sentry

Within Sentry, you can view all your errors, and also do filtering and grouping things.

ELK

Elasticsearch + Logstash + Kibana