Commit d093d056 authored by Andrei Mihu's avatar Andrei Mihu
Browse files

Replace metrics implementation, more accurate devconsole stats.

parent ac08be94
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -10,13 +10,18 @@ The format is based on [keep a changelog](http://keepachangelog.com) and this pr
- Independent config flags for socket read and write buffer sizes.

### Changed
- Replace metrics implementation.
- Strictly validate authoritative match create parameter encoding.
- Only perform user account updates if fields have changed.
- Developer console status snapshot gauges more accurately reflect current server metrics.
- Build with Go 1.14.2 release.

### Fixed
- Ensure runtime environment values do not appear multiple times in the devconsole configuration view.
- Channel presence events now populate room, group, and direct message fields.
- Developer console status graphs correctly show a fixed time window of metrics.
- Expose friend deletion in developer console user detail view.
- Expose group membership deletion in developer console user detail view.

## [2.11.1] - 2020-03-29
### Changed
+6 −6

File changed.

Preview size limit exceeded, changes collapsed.

+37 −10
Original line number Diff line number Diff line
@@ -45,16 +45,43 @@ type State = {
class Status extends Component<Props, State> {
  public constructor(props: Props) {
    super(props);
    let labels = [];
    let latency_ms = [];
    let rate_sec = [];
    let input_kbs = [];
    let output_kbs = [];
    const now = new Date();
    for (let i = 0; i < 24; i++) {
      const d = new Date(now.getTime() - (i * 5000));
      const t = d.valueOf();
      labels.push(d)
      latency_ms.push({
        t,
        y: 0
      });
      rate_sec.push({
        t,
        y: 0
      });
      input_kbs.push({
        t,
        y: 0
      });
      output_kbs.push({
        t,
        y: 0
      });
    }
    this.state = {
      avg_latency_ms: 0,
      avg_rate_sec: 0,
      avg_input_kbs: 0,
      avg_output_kbs: 0,
      labels: [],
      latency_ms: [],
      rate_sec: [],
      input_kbs: [],
      output_kbs: [],
      labels: labels,
      latency_ms: latency_ms,
      rate_sec: rate_sec,
      input_kbs: input_kbs,
      output_kbs: output_kbs,
      interval: undefined
    };
  }
@@ -149,19 +176,19 @@ class Status extends Component<Props, State> {
        y: avg_output_kbs
      });

      if (labels.length > 360) {
      if (labels.length > 24) {
        labels.shift();
      }
      if (latency_ms.length > 360) {
      if (latency_ms.length > 24) {
        latency_ms.shift();
      }
      if (rate_sec.length > 360) {
      if (rate_sec.length > 24) {
        rate_sec.shift();
      }
      if (input_kbs.length > 360) {
      if (input_kbs.length > 24) {
        input_kbs.shift();
      }
      if (output_kbs.length > 360) {
      if (output_kbs.length > 24) {
        output_kbs.shift();
      }

+5 −5
Original line number Diff line number Diff line
@@ -13,7 +13,7 @@ import {
  LedgerObject,
  LedgerObjectRequest,
  UserObject,
  UserObjectRequest
  UserObjectRequest, UserDeleteFriendRequest
} from '../../store/users/types';

import {
@@ -211,15 +211,15 @@ class UsersDetails extends Component<Props, State> {
  public remove_friend(id: string) {
    const {match} = this.props;
    if (confirm('Are you sure you want to delete this friend?')) {
      this.props.deleteFriendRequest({id});
      this.props.deleteFriendRequest({id: ((match.params as Record<string, string>)["id"] as string), friendId: id});
      this.props.fetchFriendRequest(match.params);
    }
  }

  public remove_group(id: string) {
    const {match} = this.props;
    if (confirm('Are you sure you want to delete this group?')) {
      this.props.deleteGroupRequest({id});
    if (confirm('Are you sure you want to delete this group membership?')) {
      this.props.deleteGroupRequest({id: ((match.params as Record<string, string>)["id"] as string), groupId: id});
      this.props.fetchGroupRequest(match.params);
    }
  }
@@ -1071,7 +1071,7 @@ const mapDispatchToProps = (dispatch: Dispatch) => ({
    userActions.userUnlinkCustomRequest(data)
  ),

  deleteFriendRequest: (data: UserObjectRequest) => dispatch(
  deleteFriendRequest: (data: UserDeleteFriendRequest) => dispatch(
    userActions.userDeleteFriendRequest(data)
  ),
  deleteGroupRequest: (data: UserObjectRequest) => dispatch(
+4 −2
Original line number Diff line number Diff line
import {action} from 'typesafe-actions';
import {
  UserActionTypes,
  UserDeleteFriendRequest,
  UserDeleteGroupRequest,
  UserObjectRequest,
  UserUnlinkDeviceRequest,
  UserObject,
@@ -150,7 +152,7 @@ export const userFetchFriendError = (message: string) => action(
  message
);

export const userDeleteFriendRequest = (data: UserObjectRequest) => action(
export const userDeleteFriendRequest = (data: UserDeleteFriendRequest) => action(
  UserActionTypes.DELETE_FRIEND_REQUEST,
  data
);
@@ -175,7 +177,7 @@ export const userFetchGroupError = (message: string) => action(
  message
);

export const userDeleteGroupRequest = (data: UserObjectRequest) => action(
export const userDeleteGroupRequest = (data: UserDeleteGroupRequest) => action(
  UserActionTypes.DELETE_GROUP_REQUEST,
  data
);
Loading